亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? xmlpullparserfactory.java

?? < JavaME核心技術(shù)最佳實(shí)踐>>的全部源代碼
?? JAVA
字號(hào):
/* -*-             c-basic-offset: 4; indent-tabs-mode: nil; -*-  //------100-columns-wide------>|*/// for license please see accompanying LICENSE.txt file (available also at http://www.xmlpull.org/)package org.xmlpull.v1;import java.io.InputStream;import java.util.Enumeration;import java.util.Hashtable;import java.util.Vector;/** * This class is used to create implementations of XML Pull Parser defined in XMPULL V1 API. * The name of actual factory class will be determined based on several parameters. * It works similar to JAXP but tailored to work in J2ME environments * (no access to system properties or file system) so name of parser class factory to use * and its class used for loading (no class loader - on J2ME no access to context class loaders) * must be passed explicitly. If no name of parser factory was passed (or is null) * it will try to find name by searching in CLASSPATH for * META-INF/services/org.xmlpull.v1.XmlPullParserFactory resource that should contain * a comma separated list of class names of factories or parsers to try (in order from * left to the right). If none found, it will throw an exception. * * <br /><strong>NOTE:</strong>In J2SE or J2EE environments, you may want to use * <code>newInstance(property, classLoaderCtx)</code> * where first argument is * <code>System.getProperty(XmlPullParserFactory.PROPERTY_NAME)</code> * and second is <code>Thread.getContextClassLoader().getClass()</code> . * * @see XmlPullParser * * @author <a href="http://www.extreme.indiana.edu/~aslom/">Aleksander Slominski</a> * @author Stefan Haustein */public class XmlPullParserFactory {    /** used as default class to server as context class in newInstance() */    final static Class referenceContextClass;    static {        XmlPullParserFactory f = new XmlPullParserFactory();        referenceContextClass = f.getClass();    }    /** Name of the system or midlet property that should be used for     a system property containing a comma separated list of factory     or parser class names (value:     org.xmlpull.v1.XmlPullParserFactory). */    public static final String PROPERTY_NAME =        "org.xmlpull.v1.XmlPullParserFactory";    private static final String RESOURCE_NAME =        "/META-INF/services/" + PROPERTY_NAME;    // public static final String DEFAULT_PROPERTY =    //    "org.xmlpull.xpp3.XmlPullParser,org.kxml2.io.KXmlParser";    protected Vector parserClasses;    protected String classNamesLocation;    protected Vector serializerClasses;    // features are kept there    protected Hashtable features = new Hashtable();    /**     * Protected constructor to be called by factory implementations.     */    protected XmlPullParserFactory() {    }    /**     * Set the features to be set when XML Pull Parser is created by this factory.     * <p><b>NOTE:</b> factory features are not used for XML Serializer.     *     * @param name string with URI identifying feature     * @param state if true feature will be set; if false will be ignored     */    public void setFeature(String name,                           boolean state) throws XmlPullParserException {        features.put(name, new Boolean(state));    }    /**     * Return the current value of the feature with given name.     * <p><b>NOTE:</b> factory features are not used for XML Serializer.     *     * @param name The name of feature to be retrieved.     * @return The value of named feature.     *     Unknown features are <string>always</strong> returned as false     */    public boolean getFeature (String name) {        Boolean value = (Boolean) features.get(name);        return value != null ? value.booleanValue() : false;    }    /**     * Specifies that the parser produced by this factory will provide     * support for XML namespaces.     * By default the value of this is set to false.     *     * @param awareness true if the parser produced by this code     *    will provide support for XML namespaces;  false otherwise.     */    public void setNamespaceAware(boolean awareness) {        features.put (XmlPullParser.FEATURE_PROCESS_NAMESPACES, new Boolean (awareness));    }    /**     * Indicates whether or not the factory is configured to produce     * parsers which are namespace aware     * (it simply set feature XmlPullParser.FEATURE_PROCESS_NAMESPACES to true or false).     *     * @return  true if the factory is configured to produce parsers     *    which are namespace aware; false otherwise.     */    public boolean isNamespaceAware() {        return getFeature (XmlPullParser.FEATURE_PROCESS_NAMESPACES);    }    /**     * Specifies that the parser produced by this factory will be validating     * (it simply set feature XmlPullParser.FEATURE_VALIDATION to true or false).     *     * By default the value of this is set to false.     *     * @param validating - if true the parsers created by this factory  must be validating.     */    public void setValidating(boolean validating) {        features.put (XmlPullParser.FEATURE_VALIDATION, new Boolean (validating));    }    /**     * Indicates whether or not the factory is configured to produce parsers     * which validate the XML content during parse.     *     * @return   true if the factory is configured to produce parsers     * which validate the XML content during parse; false otherwise.     */    public boolean isValidating() {        return getFeature (XmlPullParser.FEATURE_VALIDATION);    }    /**     * Creates a new instance of a XML Pull Parser     * using the currently configured factory features.     *     * @return A new instance of a XML Pull Parser.     * @throws XmlPullParserException if a parser cannot be created which satisfies the     * requested configuration.     */    public XmlPullParser newPullParser() throws XmlPullParserException {        if (parserClasses == null) throw new XmlPullParserException                ("Factory initialization was incomplete - has not tried "+classNamesLocation);        if (parserClasses.size() == 0) throw new XmlPullParserException                ("No valid parser classes found in "+classNamesLocation);        final StringBuffer issues = new StringBuffer ();        for (int i = 0; i < parserClasses.size (); i++) {            final Class ppClass = (Class) parserClasses.elementAt (i);            try {                final XmlPullParser pp = (XmlPullParser) ppClass.newInstance();                //            if( ! features.isEmpty() ) {                //Enumeration keys = features.keys();                // while(keys.hasMoreElements()) {                for (Enumeration e = features.keys (); e.hasMoreElements ();) {                    final String key = (String) e.nextElement();                    final Boolean value = (Boolean) features.get(key);                    if(value != null && value.booleanValue()) {                        pp.setFeature(key, true);                    }                }                return pp;            } catch(Exception ex) {                issues.append (ppClass.getName () + ": "+ ex.toString ()+"; ");            }        }        throw new XmlPullParserException ("could not create parser: "+issues);    }    /**     * Creates a new instance of a XML Serializer.     *     * <p><b>NOTE:</b> factory features are not used for XML Serializer.     *     * @return A new instance of a XML Serializer.     * @throws XmlPullParserException if a parser cannot be created which satisfies the     * requested configuration.     */    public XmlSerializer newSerializer() throws XmlPullParserException {        if (serializerClasses == null) {            throw new XmlPullParserException                ("Factory initialization incomplete - has not tried "+classNamesLocation);        }        if(serializerClasses.size() == 0) {            throw new XmlPullParserException                ("No valid serializer classes found in "+classNamesLocation);        }        final StringBuffer issues = new StringBuffer ();        for (int i = 0; i < serializerClasses.size (); i++) {            final Class ppClass = (Class) serializerClasses.elementAt (i);            try {                final XmlSerializer ser = (XmlSerializer) ppClass.newInstance();                //                for (Enumeration e = features.keys (); e.hasMoreElements ();) {                //                    String key = (String) e.nextElement();                //                    Boolean value = (Boolean) features.get(key);                //                    if(value != null && value.booleanValue()) {                //                        ser.setFeature(key, true);                //                    }                //                }                return ser;            } catch(Exception ex) {                issues.append (ppClass.getName () + ": "+ ex.toString ()+"; ");            }        }        throw new XmlPullParserException ("could not create serializer: "+issues);    }    /**     * Create a new instance of a PullParserFactory that can be used     * to create XML pull parsers (see class description for more     * details).     *     * @return a new instance of a PullParserFactory, as returned by newInstance (null, null);      */    public static XmlPullParserFactory newInstance () throws XmlPullParserException {        return newInstance(null, null);    }    public static XmlPullParserFactory newInstance (String classNames, Class context)        throws XmlPullParserException {        if (context == null) {            //NOTE: make sure context uses the same class loader as API classes            //      this is the best we can do without having access to context classloader in J2ME            //      if API is in the same classloader as implementation then this will work            context = referenceContextClass;        }        String  classNamesLocation = null;        if (classNames == null || classNames.length() == 0 || "DEFAULT".equals(classNames)) {            try {                InputStream is = context.getResourceAsStream (RESOURCE_NAME);                if (is == null) throw new XmlPullParserException                        ("resource not found: "+RESOURCE_NAME                             +" make sure that parser implementing XmlPull API is available");                final StringBuffer sb = new StringBuffer();                while (true) {                    final int ch = is.read();                    if (ch < 0) break;                    else if (ch > ' ')                        sb.append((char) ch);                }                is.close ();                classNames = sb.toString ();            }            catch (Exception e) {                throw new XmlPullParserException (null, null, e);            }            classNamesLocation = "resource "+RESOURCE_NAME+" that contained '"+classNames+"'";        } else {            classNamesLocation =                "parameter classNames to newInstance() that contained '"+classNames+"'";        }        XmlPullParserFactory factory = null;        final Vector parserClasses = new Vector ();        final Vector serializerClasses = new Vector ();        int pos = 0;        while (pos < classNames.length ()) {            int cut = classNames.indexOf (',', pos);            if (cut == -1) cut = classNames.length ();            final String name = classNames.substring (pos, cut);            Class candidate = null;            Object instance = null;            try {                candidate = Class.forName (name);                // necessary because of J2ME .class issue                instance = candidate.newInstance ();            }            catch (Exception e) {}            if (candidate != null) {                boolean recognized = false;                if (instance instanceof XmlPullParser) {                    parserClasses.addElement (candidate);                    recognized = true;                }                if (instance instanceof XmlSerializer) {                    serializerClasses.addElement (candidate);                    recognized = true;                }                if (instance instanceof XmlPullParserFactory) {                    if (factory == null) {                        factory = (XmlPullParserFactory) instance;                    }                    recognized = true;                }                if (!recognized) {                    throw new XmlPullParserException ("incompatible class: "+name);                }            }            pos = cut + 1;        }        if (factory == null) {            factory = new XmlPullParserFactory ();        }        factory.parserClasses = parserClasses;        factory.serializerClasses = serializerClasses;        factory.classNamesLocation = classNamesLocation;        return factory;    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产女同性恋一区二区| 不卡在线视频中文字幕| 欧美日韩久久久久久| 中文字幕佐山爱一区二区免费| 国产一区二区伦理| 欧美视频一区二区三区四区 | 日韩高清不卡一区| 日本黄色一区二区| 一区二区三区不卡在线观看 | 中文字幕日韩av资源站| 99精品视频免费在线观看| 国产精品乱人伦| 成人v精品蜜桃久久一区| 国产精品毛片高清在线完整版| 成人三级伦理片| 亚洲国产成人在线| 97精品久久久午夜一区二区三区| 国产拍揄自揄精品视频麻豆| 成人黄色在线视频| 亚洲人妖av一区二区| 日本韩国欧美一区| 丝袜a∨在线一区二区三区不卡| 欧美日韩高清一区| 久久精品国产亚洲高清剧情介绍 | 亚洲成在人线免费| 欧美一区二区网站| 狠狠网亚洲精品| 亚洲欧洲韩国日本视频| 91久久精品国产91性色tv| 污片在线观看一区二区| 26uuu国产日韩综合| 成人午夜电影小说| 亚洲电影激情视频网站| 欧美三区免费完整视频在线观看| 中文字幕成人av| 91麻豆文化传媒在线观看| 亚洲特黄一级片| 欧美日韩一本到| 极品少妇一区二区| 国产精品电影一区二区三区| 色婷婷综合在线| 成人免费在线观看入口| 欧美一区二区黄色| 丁香天五香天堂综合| 一区二区三区在线观看视频| 精品少妇一区二区三区在线视频| 成人国产精品免费观看视频| 三级在线观看一区二区 | 91麻豆精品久久久久蜜臀| 日韩精品国产欧美| 精品欧美黑人一区二区三区| 99久久精品久久久久久清纯| 一区二区三区四区在线播放| 精品免费国产一区二区三区四区| 色妞www精品视频| 国产精品中文字幕欧美| 午夜影院久久久| 国产精品久久免费看| 制服丝袜一区二区三区| 91影视在线播放| 国产精品一区专区| 蜜桃精品视频在线| 一片黄亚洲嫩模| 国产欧美日韩视频在线观看| 7777精品伊人久久久大香线蕉的| 东方欧美亚洲色图在线| 九九精品一区二区| 日韩专区一卡二卡| 曰韩精品一区二区| 中文一区二区完整视频在线观看| 欧美一二三区在线| 9人人澡人人爽人人精品| 国产一区不卡精品| 蜜臀久久久99精品久久久久久| 亚洲综合另类小说| 亚洲欧美激情视频在线观看一区二区三区| 精品伦理精品一区| 91精品国产综合久久福利软件| 色94色欧美sute亚洲线路一久| 成人激情午夜影院| 成人小视频免费观看| 韩国v欧美v亚洲v日本v| 麻豆一区二区99久久久久| 亚洲福利视频一区二区| 亚洲永久精品大片| 亚洲自拍偷拍九九九| 亚洲激情图片qvod| 亚洲伦理在线精品| 日韩理论电影院| 亚洲色图欧美激情| 亚洲精品国久久99热| 国产精品福利在线播放| 国产精品热久久久久夜色精品三区 | 一区二区三区中文字幕精品精品 | 久久久国产午夜精品| 日韩一卡二卡三卡四卡| 欧美在线免费观看亚洲| 99国产一区二区三精品乱码| 国产精品自拍网站| 国产一区二区三区av电影| 老汉av免费一区二区三区| 日本最新不卡在线| 麻豆91免费观看| 日韩精品欧美精品| 亚洲综合丁香婷婷六月香| 亚洲视频 欧洲视频| 亚洲国产激情av| 久久久精品天堂| 欧美成人免费网站| 久久精品亚洲精品国产欧美kt∨| 国产欧美日韩久久| 国产日韩欧美不卡| 亚洲女子a中天字幕| 亚洲成av人片一区二区梦乃| 夜夜嗨av一区二区三区| 亚洲啪啪综合av一区二区三区| 中文字幕成人在线观看| 亚洲人妖av一区二区| 国产精品久久久久久久久搜平片 | 日韩精品久久久久久| 美女脱光内衣内裤视频久久网站| 热久久久久久久| 国产成人免费视| 91成人网在线| 2023国产精华国产精品| 亚洲欧洲无码一区二区三区| 亚洲午夜在线电影| 国产在线精品免费| 日本精品免费观看高清观看| 精品日本一线二线三线不卡| 亚洲同性gay激情无套| 男女性色大片免费观看一区二区| 国产成人免费视频一区| 欧美三级中文字| 国产精品视频第一区| 日韩精品电影一区亚洲| 成人动漫在线一区| 成人毛片视频在线观看| 6080亚洲精品一区二区| 国产精品丝袜一区| 麻豆精品一区二区综合av| 91视频在线观看免费| 精品免费国产二区三区| 亚洲图片欧美综合| 成人app在线观看| 日韩欧美久久一区| 一区二区激情小说| 精品制服美女丁香| 99视频在线精品| 日韩三级视频中文字幕| 国产精品久久久久久久久果冻传媒| 国产精品午夜久久| 免费视频一区二区| 在线视频你懂得一区| 久久精品人人做人人爽97| 日韩av午夜在线观看| 91麻豆产精品久久久久久| 久久久久久影视| 午夜欧美视频在线观看| 色天天综合久久久久综合片| 久久久久久久久99精品| 蜜臀va亚洲va欧美va天堂| 在线观看av一区| 亚洲男人的天堂在线aⅴ视频| 国产精品18久久久久久vr| 日韩女同互慰一区二区| 亚洲va欧美va人人爽| 91视频在线看| 亚洲丝袜精品丝袜在线| 精品一区二区在线播放| 欧美日韩国产欧美日美国产精品| 国产日韩欧美一区二区三区综合 | 亚洲欧洲精品成人久久奇米网| 国产一区 二区| 欧美精品一区二区三| 蜜臀91精品一区二区三区| 不卡电影一区二区三区| 中文字幕欧美日本乱码一线二线| 另类欧美日韩国产在线| 日韩精品一区二区三区视频在线观看| 亚洲成国产人片在线观看| 欧美亚洲高清一区| 亚洲一区二区成人在线观看| 成人高清视频免费观看| 久久美女艺术照精彩视频福利播放| 香蕉av福利精品导航| 色88888久久久久久影院按摩| 综合网在线视频| 热久久国产精品| 日韩欧美精品三级| 日韩美女视频19| 国产伦精品一区二区三区免费迷| 欧美一级夜夜爽| 麻豆国产欧美日韩综合精品二区| 91久久国产综合久久| 综合网在线视频| 精品视频在线免费| 日本不卡视频在线观看| 欧美变态凌虐bdsm| 丰满亚洲少妇av|