JsonProvider源码翻译

来源:互联网 发布:ubuntu 配置保存 编辑:程序博客网 时间:2024/06/05 12:22
package javax.json.spi;import javax.json.*;import javax.json.stream.JsonGenerator;import javax.json.stream.JsonGeneratorFactory;import javax.json.stream.JsonParser;import javax.json.stream.JsonParserFactory;import java.io.InputStream;import java.io.OutputStream;import java.io.Reader;import java.io.Writer;import java.util.Iterator;import java.util.Map;import java.util.ServiceLoader;/** * 目的:处理JSON的Service provider *  * <p>该类所有的方法都是线程安全的,使用在多并发线程。 * @author TCM * @create 2017年11月7日上午9:25:24 * @see    ServiceLoader */public abstract class JsonProvider {//常量名,默认{@code JsonProvider}的实现类    private static final String DEFAULT_PROVIDER            = "org.glassfish.json.JsonProviderImpl";    protected JsonProvider() {}    /**     * 创建JsonProvider对象。使用{@link ServiceLoader#load(Class)}方法     * 创建该对象。如果没有可用的服务供应商(service provider),该方法返回默认。     * @see ServiceLoader     * @return a JSON provider     */    public static JsonProvider provider() {        ServiceLoader<JsonProvider> loader = ServiceLoader.load(JsonProvider.class);        Iterator<JsonProvider> it = loader.iterator();        if (it.hasNext()) {            return it.next();//若有,则返回        }        try {        //若没有,则返回默认:"org.glassfish.json.JsonProviderImpl"            Class<?> clazz = Class.forName(DEFAULT_PROVIDER);            return (JsonProvider)clazz.newInstance();        } catch (ClassNotFoundException x) {            throw new JsonException(                    "Provider " + DEFAULT_PROVIDER + " not found", x);        } catch (Exception x) {            throw new JsonException(                    "Provider " + DEFAULT_PROVIDER + " could not be instantiated: " + x,                    x);        }    }    public abstract JsonParser createParser(Reader reader);    public abstract JsonParser createParser(InputStream in);    public abstract JsonParserFactory createParserFactory(Map<String, ?> config);    public abstract JsonGenerator createGenerator(Writer writer);    public abstract JsonGenerator createGenerator(OutputStream out);    public abstract JsonGeneratorFactory createGeneratorFactory(Map<String, ?> config);    public abstract JsonReader createReader(Reader reader);    public abstract JsonReader createReader(InputStream in);    public abstract JsonReaderFactory createReaderFactory(Map<String,?> config);    public abstract JsonWriter createWriter(Writer writer);    public abstract JsonWriter createWriter(OutputStream out);    public abstract JsonWriterFactory createWriterFactory(Map<String,?> config);       public abstract JsonObjectBuilder createObjectBuilder();    public abstract JsonArrayBuilder createArrayBuilder();    public abstract JsonBuilderFactory createBuilderFactory(Map<String,?> config);}

原创粉丝点击