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

📄 publicidentifiers.java

📁 WAP协议栈的JAVA实现
💻 JAVA
字号:
/**
 * JWAP - A Java Implementation of the WAP Protocols
 * Copyright (C) 2001-2004 Niko Bender
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */
package net.sourceforge.jwap.util.wbxml;

import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;


/**
 * This class represents the normative list of public identifiers issued, and maintained, by the WAP Forum
 * Public Identifiers values represent well-known document type public identifiers.
 * The first 128 values are reserved for use in future WAP specifications.
 * All values are in hexadecimal.
 *
 * @author Suvarna
 */
public class PublicIdentifiers {
    private static PublicIdentifiers instance;
    private Hashtable publicIdentifiers;
    private Hashtable systemIdentifiers;

    private PublicIdentifiers() {
        initialize();
    }

    public static PublicIdentifiers getInstance() {
        if (instance == null) {
            instance = new PublicIdentifiers();
        }

        return instance;
    }

    /**
     * The public identifier table is initialized to the  well-known public identifiers issued by the WAP Forum.
     * These are valid at the time the WBXML V1.3 specification was released.
     **/
    private void initialize() {
        publicIdentifiers = new Hashtable();
        publicIdentifiers.put("0", "STRING_TABLE");
        publicIdentifiers.put("1", "UNKNOWN");
        publicIdentifiers.put("2", "-//WAPFORUM//DTD WML 1.0//EN"); // (WML 1.0)
        publicIdentifiers.put("3", "-//WAPFORUM//DTD WTA 1.0//EN"); // (WTA Event 1.0)		 deprecated
        publicIdentifiers.put("4", "-//WAPFORUM//DTD WML 1.1//EN"); //(WML 1.1)";
        publicIdentifiers.put("5", "-//WAPFORUM//DTD SI 1.0//EN"); // (Service Indication 1.0)
        publicIdentifiers.put("6", "-//WAPFORUM//DTD SL 1.0//EN"); // (Service Loading 1.0)
        publicIdentifiers.put("7", "-//WAPFORUM//DTD CO 1.0//EN"); // (Cache Operation 1.0)
        publicIdentifiers.put("8", "-//WAPFORUM//DTD CHANNEL 1.1//EN"); //(Channel 1.1)
        publicIdentifiers.put("9", "-//WAPFORUM//DTD WML 1.2//EN"); // (WML 1.2)
        publicIdentifiers.put("A", "-//WAPFORUM//DTD WML 1.3//EN"); //(WML 1.3)
        publicIdentifiers.put("B", "-//WAPFORUM//DTD PROV 1.0//EN"); // (Provisioning 1.0)
        publicIdentifiers.put("C", "-//WAPFORUM//DTD WTA-WML 1.2//EN"); // (WTA-WML 1.2)
        publicIdentifiers.put("D", "-//WAPFORUM//DTD CHANNEL 1.2//EN"); // (Channel 1.2)
        publicIdentifiers.put("E", "-//OMA//DTD DRMREL 1.0//EN"); // (DRM REL 1.0)

        publicIdentifiers.put("1100", "-//PHONE.COM//DTD ALERT 1.0//EN"); // Registered Values

        systemIdentifiers = new Hashtable();
        systemIdentifiers.put("STRING_TABLE", "");
        systemIdentifiers.put("UNKNOWN", "");
        systemIdentifiers.put("-//WAPFORUM//DTD WML 1.0//EN", ""); // (WML 1.0)
        systemIdentifiers.put("-//WAPFORUM//DTD WTA 1.0//EN", ""); // (WTA Event 1.0)		 deprecated
        systemIdentifiers.put("-//WAPFORUM//DTD WML 1.1//EN",
            "http://www.wapforum.org/DTD/wml_1_1.dtd"); //(WML 1.1)";
        systemIdentifiers.put("-//WAPFORUM//DTD SI 1.0//EN",
            "http://www.wapforum.org/DTD/si.dtd"); // (Service Indication 1.0)
        systemIdentifiers.put("-//WAPFORUM//DTD SL 1.0//EN",
            "http://www.wapforum.org/DTD/sl.dtd"); // (Service Loading 1.0)
        systemIdentifiers.put("-//WAPFORUM//DTD CO 1.0//EN", ""); // (Cache Operation 1.0)
        systemIdentifiers.put("-//WAPFORUM//DTD CHANNEL 1.1//EN", ""); //(Channel 1.1)
        systemIdentifiers.put("-//WAPFORUM//DTD WML 1.2//EN",
            "http://www.wapforum.org/DTD/wml12.dtd"); // (WML 1.2)
        systemIdentifiers.put("-//WAPFORUM//DTD WML 1.3//EN",
            "http://www.wapforum.org/DTD/wml13.dtd"); //(WML 1.3)
        systemIdentifiers.put("-//WAPFORUM//DTD PROV 1.0//EN",
            "http://www.wapforum.org/DTD/prov.dtd"); // (Provisioning 1.0)
        systemIdentifiers.put("-//WAPFORUM//DTD WTA-WML 1.2//EN",
            "http://www.wapforum.org/DTD/wta-wml12.dtd"); // (WTA-WML 1.2)
        systemIdentifiers.put("-//WAPFORUM//DTD CHANNEL 1.2//EN",
            "http://www.wapforum.org/DTD/channel12.dtd"); // (Channel 1.2)
        systemIdentifiers.put("-//OMA//DTD DRMREL 1.0//EN", ""); // (DRM REL 1.0)

        systemIdentifiers.put("-//PHONE.COM//DTD ALERT 1.0//EN", ""); // Registered Values
    }

    public String getPublicIdentifier(int publicIdentifier) {
        String key = Integer.toHexString(publicIdentifier);
        String value = (String) publicIdentifiers.get(key);
        value = (value == null) ? (String) publicIdentifiers.get("1") : value;

        return value;
    }

    public String getSystemIdentifier(String publicIdentifier) {
        return (String) systemIdentifiers.get(publicIdentifier);
    }

    public int getPublicIdentifierValue(String publicId) {
        Iterator iter = publicIdentifiers.entrySet().iterator();

        return Integer.parseInt(getKeyFromValue(iter, publicId));
    }

    private String getKeyFromValue(Iterator iterator, String publicId) {
        while (iterator.hasNext()) {
            Map.Entry entry = (Map.Entry) iterator.next();

            if (entry.getValue().toString().equals(publicId)) {
                return entry.getKey().toString();
            }
        }

        return "1";
    }

    public int getDefaultPublicIdentifier() {
        return 1;
    }
}

⌨️ 快捷键说明

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