⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdataentitybuilder.java

📁 一套java版本的搜索引擎源码
💻 JAVA
字号:
/**  * Copyright 2004 The Apache Software Foundation  *  * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file except in compliance with the License.  * You may obtain a copy of the License at  *  *     http://www.apache.org/licenses/LICENSE-2.0  *  * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  */package org.apache.lucene.gdata.server;import java.io.IOException;import java.io.Reader;import org.apache.lucene.gdata.server.registry.ProvidedService;import com.google.gdata.data.BaseEntry;import com.google.gdata.data.BaseFeed;import com.google.gdata.util.ParseException;/** * {@link com.google.gdata.data.BaseFeed}, * {@link com.google.gdata.data.BaseEntry} instances have to be build from a * {@link java.io.Reader} instance as they come in from a client request or out * of a storage. * <p> * To provide a generic builder class the {@link GDataEntityBuilder} requests * the type of the feed / entry and the corresponding * {@link com.google.gdata.data.ExtensionProfile} form the global * {@link org.apache.lucene.gdata.server.registry.GDataServerRegistry} and * builds the instances from the provided reader. * </p> * <p> * This build will not returne the abstract base classes. * </p> *  * @author Simon Willnauer *  */public class GDataEntityBuilder {    /**     * Builds a {@link BaseFeed} instance from the {@link Reader} provided by     * the {@link GDataRequest}     *      * @param request -     *            the request to build the instance from     * @return - a BaseFeed instance     *      * @throws IOException -     *             if an I/O Exception occures on the provided reader     * @throws ParseException -     *             if the feed could not be parsed     */    public static BaseFeed buildFeed(final GDataRequest request)            throws IOException, ParseException {        if (request == null)            throw new IllegalArgumentException("request must not be null");        ProvidedService config = request.getConfigurator();        return buildFeed(request.getReader(), config);    }    /**     * Builds a {@link BaseFeed} from the provided {@link Reader}     *      *      * @param reader -     *            the reader to build the feed from     * @param config -     *            the feed instance config containing the extension profile to     *            parse the resource     * @return - a BaseFeed instance     *      * @throws IOException -     *             if an I/O Exception occures on the provided reader     * @throws ParseException -     *             if the feed could not be parsed     */    public static BaseFeed buildFeed(final Reader reader,            final ProvidedService config) throws ParseException, IOException {        BaseFeed retVal = null;        retVal = createEntityInstance(config);        retVal.parseAtom(config.getExtensionProfile(), reader);              return retVal;    }    /**     * Builds a {@link BaseEntry} instance from the {@link Reader} provided by     * the {@link GDataRequest}     *      * @param request -     *            the request to build the instance from     * @return - a BaseEntry instance     *      * @throws IOException -     *             if an I/O Exception occures on the provided reader     * @throws ParseException -     *             if the entry could not be parsed     */    public static BaseEntry buildEntry(final GDataRequest request)            throws IOException, ParseException {        if (request == null)            throw new IllegalArgumentException("request must not be null");        ProvidedService config = request.getConfigurator();        return buildEntry(request.getReader(), config);    }    /**     * Builds a {@link BaseFeed} instance from the {@link Reader} provided by     * the {@link GDataRequest}     *      * @param reader -     *            the reader to build the feed from     * @param config -     *            the instance config containing the extension profile to parse     *            the resource     * @return - a BaseFeed instance     *      * @throws IOException -     *             if an I/O Exception occures on the provided reader     * @throws ParseException -     *             if the entry could not be parsed     */    public static BaseEntry buildEntry(final Reader reader,            final ProvidedService config) throws ParseException, IOException {               BaseEntry e = createEntityInstance(config).createEntry();        e.parseAtom(config.getExtensionProfile(), reader);        return e;    }    private static BaseFeed createEntityInstance(            final ProvidedService config) {        if(config.getFeedType() == null)            throw new IllegalArgumentException("feedtype is null in ProvidedService");                BaseFeed retVal = null;        try {            retVal = (BaseFeed) config.getFeedType().newInstance();        } catch (Exception e) {            throw new EntityBuilderException("Can't instanciate Feed for feedType "+config.getFeedType().getName(),e);        }        return retVal;    }    static class EntityBuilderException extends RuntimeException{        /**         *          */        private static final long serialVersionUID = 7224011324202237951L;        EntityBuilderException(String arg0) {            super(arg0);                   }        EntityBuilderException(String arg0, Throwable arg1) {            super(arg0, arg1);                   }            }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -