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

📄 wbxmlinitialiserfactory.java

📁 本文档讲解了OTA的概念
💻 JAVA
字号:
package org.kxml.wap;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */
import java.util.HashMap;
import java.lang.Integer;

class WbxmlInitialiserFactory {


    static final Integer  UNKNOWN_PUBLIC_ID_CODE=Integer.valueOf("01",16);
    static final Integer  WML10_PUBLIC_ID_CODE=Integer.valueOf("02",16);
    static final Integer  WTA10_PUBLIC_ID_CODE=Integer.valueOf("03",16);
    static final Integer  WML11_PUBLIC_ID_CODE=Integer.valueOf("04",16);
    static final Integer  SI10_PUBLIC_ID_CODE=Integer.valueOf("05",16);
    static final Integer  SL10_PUBLIC_ID_CODE=Integer.valueOf("06",16);
    static final Integer  CO10_PUBLIC_ID_CODE=Integer.valueOf("07",16);
    static final Integer  CHANNEL11_PUBLIC_ID_CODE=Integer.valueOf("08",16);
    static final Integer  WML12_PUBLIC_ID_CODE=Integer.valueOf("09",16);
    static final Integer  WML13_PUBLIC_ID_CODE=Integer.valueOf("0A",16);
    static final Integer  PROV10_PUBLIC_ID_CODE=Integer.valueOf("0B",16);
    static final Integer  WTAWML12_PUBLIC_ID_CODE=Integer.valueOf("0C",16);
    static final Integer  CHANNEL12_PUBLIC_ID_CODE=Integer.valueOf("0D",16);

    // I dont think the following are real
    static final Integer  SYNCML_SYNCML11_PUBLIC_ID_CODE=Integer.valueOf("0FD3",16);
    static final Integer  SYNCML_DEVINF11_PUBLIC_ID_CODE=Integer.valueOf("0F2D",16);
    static final Integer  SYNCML_METINF11_PUBLIC_ID_CODE=Integer.valueOf("01",16);


    private static final String WML10_PUBLIC_ID="-//WAPFORUM//DTD WML 1.0//EN";
    private static final String WTA10_PUBLIC_ID="-//WAPFORUM//DTD WTA 1.0//EN";
    private static final String WML11_PUBLIC_ID="-//WAPFORUM//DTD WML 1.1//EN";
    private static final String SI10_PUBLIC_ID="-//WAPFORUM//DTD SI 1.0//EN";
    private static final String SL10_PUBLIC_ID="-//WAPFORUM//DTD SL 1.0//EN";
    private static final String CO10_PUBLIC_ID="-//WAPFORUM//DTD CO 1.0//EN";
    private static final String CHANNEL11_PUBLIC_ID="-//WAPFORUM//DTD CHANNEL 1.1//EN";
    private static final String WML12_PUBLIC_ID="-//WAPFORUM//DTD WML 1.2//EN";
    private static final String WML13_PUBLIC_ID="-//WAPFORUM//DTD WML 1.3//EN";
    private static final String PROV10_PUBLIC_ID="-//WAPFORUM//DTD PROV 1.0//EN";
    private static final String WTAWML12_PUBLIC_ID="-//WAPFORUM//DTD WTA-WML 1.2//EN";
    private static final String CHANNEL12_PUBLIC_ID="-//WAPFORUM//DTD CHANNEL 1.2//EN";
    private static final String SYNCML_SYNCML11_PUBLIC_ID="-//SYNCML//DTD SyncML 1.1//EN";
    private static final String SYNCML_DEVINF11_PUBLIC_ID="-//SYNCML//DTD DevInf 1.1//EN";
    private static final String SYNCML_METINF11_PUBLIC_ID="-//SYNCML//DTD MetInf 1.1//EN";
    private static final String SYNCML_SYNCML10_PUBLIC_ID="-//SYNCML//DTD SyncML 1.0//EN";
    private static final String SYNCML_DEVINF10_PUBLIC_ID="-//SYNCML//DTD DevInf 1.0//EN";
    private static final String SYNCML_METINF10_PUBLIC_ID="-//SYNCML//DTD MetInf 1.0//EN";




    private static WbxmlInitialiserFactory theFactory=null;
    private HashMap myPublicIdentifierMap;
    private HashMap myPublicIdentifierCodeMap;

    private WbxmlInitialiserFactory()
    throws ClassNotFoundException
    {
        myPublicIdentifierMap= new HashMap();
        myPublicIdentifierCodeMap =new HashMap();

        Class initClass;
        initClass=Class.forName("org.kxml.wap.SyncMLInitialiser");
        myPublicIdentifierMap.put(SYNCML_SYNCML10_PUBLIC_ID.toUpperCase(), initClass );
        myPublicIdentifierMap.put(SYNCML_SYNCML11_PUBLIC_ID.toUpperCase(), initClass );
        myPublicIdentifierCodeMap.put(SYNCML_SYNCML11_PUBLIC_ID_CODE, initClass);

        initClass=Class.forName("org.kxml.wap.SyncMLDevInfInitialiser");
        myPublicIdentifierMap.put(SYNCML_DEVINF10_PUBLIC_ID.toUpperCase(), initClass );
        myPublicIdentifierMap.put(SYNCML_DEVINF11_PUBLIC_ID.toUpperCase(), initClass );

        initClass=Class.forName("org.kxml.wap.SyncMLMetaInfInitialiser");
        myPublicIdentifierMap.put(SYNCML_METINF10_PUBLIC_ID.toUpperCase(), initClass );
        myPublicIdentifierMap.put(SYNCML_METINF11_PUBLIC_ID.toUpperCase(), initClass );

        initClass=Class.forName("org.kxml.wap.WMLInitialiser");
        myPublicIdentifierMap.put(WML10_PUBLIC_ID.toUpperCase(), initClass );
        myPublicIdentifierMap.put(WML11_PUBLIC_ID.toUpperCase(), initClass );
        myPublicIdentifierCodeMap.put(WML10_PUBLIC_ID_CODE, initClass );
        myPublicIdentifierCodeMap.put(WML11_PUBLIC_ID_CODE, initClass );

        /** @todo finish loading other document type */
    }

    private WbxmlInitialiser getInitByPublicIdentifier(String anIdentifier)
    throws IllegalAccessException, InstantiationException
    {
        Class initClass=(Class)myPublicIdentifierMap.get(anIdentifier.toUpperCase());
        WbxmlInitialiser init = (WbxmlInitialiser)initClass.newInstance();
        return init;
    }

    private WbxmlInitialiser getInitByPublicIdentifierCode(int aCode)
    throws IllegalAccessException, InstantiationException
    {
        Class initClass=(Class)myPublicIdentifierCodeMap.get(new Integer(aCode));
        WbxmlInitialiser init = (WbxmlInitialiser)initClass.newInstance();
        return init;
    }

    public static WbxmlInitialiser getInitialiserByPublicIdentifier(String anIdentifier)
    throws IllegalAccessException, InstantiationException, ClassNotFoundException
    {
        if(theFactory==null)
        {
            theFactory = new WbxmlInitialiserFactory();
        }
        return theFactory.getInitByPublicIdentifier(anIdentifier);
    }

    public static WbxmlInitialiser getInitialiserByPublicIdentifierCode(int aCode)
    throws IllegalAccessException, InstantiationException, ClassNotFoundException
    {
        if(theFactory==null)
        {
            theFactory = new WbxmlInitialiserFactory();
        }
        return theFactory.getInitByPublicIdentifierCode(aCode);
    }

}

⌨️ 快捷键说明

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