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

📄 dictionary.java

📁 j2me手机制作
💻 JAVA
字号:
package com.talkweb.micp.icpl.systool;

import java.util.*;

import org.kxml.kdom.*;

public class Dictionary {
    private Hashtable m_Values;
    private String m_ActionId;

    public Dictionary() {
        m_Values = new Hashtable();
    }

    public Dictionary(String sActionId) {
        this();
        setServiceName(sActionId);
    }


    public void destory() {
        m_Values.clear();
        m_Values = null;
    }

    public Object getValueByName(String aName, int aSeq, boolean aThrow,
                                 String strDefault) throws Exception {
        Object obj;
        aName = aName.toUpperCase().trim();
        obj = m_Values.get(aName);
        if (obj == null) {
            if (aThrow) {
                throw new Exception("没有找到指定值的变量: " + aName);
            } else
            if (strDefault != null) {
                obj = strDefault;
            } else {
                obj = "";
            }
        } else if (aSeq >= 0) {
            if (obj.getClass().getName().equals("java.util.Vector")) {
                Vector alObj = (Vector) obj;
                if ((alObj.size() > 0) && (aSeq < alObj.size())) {
                    obj = alObj.elementAt(aSeq);
                } else {
                    obj = null;
                }
                if (obj == null && aThrow) {
                    throw new Exception("没有找到指定值的变量: " + aName);
                }
            }
        }
        return obj;
    }

    public Object getValueByName(String aName, String strDefault) throws
            Exception {
        return getValueByName(aName, 0, false, strDefault);
    }

    public Object getValueByName(String aName, boolean aThrow) throws Exception {
        return getValueByName(aName, 0, aThrow, null);
    }


    public Object getValueByName(String aName) throws Exception {
        return getValueByName(aName, 0, true, null);
    }

    public void setValueByName(String aName, Object aObj, int aInsert) throws
            Exception {
        if (aObj == null) {
            return;
        }

        if (aObj.getClass().getName().equals("java.lang.String")) {
            aObj = ((String) aObj).trim();
        }

        aName = aName.toUpperCase().trim();
        Object obj = m_Values.get(aName);
        Vector alObj = null;

        if (obj != null) {
            switch (aInsert) {
            case 0:
                throw new Exception("已经存在同样名称的变量值:" + aName);
            case 1:

                if (obj
                    .getClass()
                    .getName()
                    .equals("java.util.Vector")) {
                    alObj = (Vector) obj;
                    alObj.addElement(aObj);
                } else {
                    alObj = new Vector();
                    alObj.addElement(obj);
                    alObj.addElement(aObj);
                    m_Values.remove(aName);
                    m_Values.put(aName, alObj);
                }
                break;
            case 2:
                m_Values.remove(aName);
                m_Values.put(aName, aObj);
                break;
            default:
                throw new Exception("非法的操作模式:" + aInsert);
            }
        } else {
            m_Values.put(aName, aObj);
        }
    }

    public void setValueByName(String aName, Object aObj) throws Exception {
        setValueByName(aName, aObj, 2); //采用正常模式调用
    }


    public Object getValueByName(String aName, int aSeq) throws Exception {
        return getValueByName(aName, aSeq, true, null);
    }

    public int getCountByName(String aName) {
        return getCountByName(aName, true);
    }


    public int getCountByName(String aName, boolean aSkipArray) {
        Object obj;
        int iObj;
        Vector alObj;
        obj = m_Values.get(aName.toUpperCase().trim());
        if (obj == null) {
            iObj = 0;
        } else {
            if (aSkipArray
                && (obj.getClass().getName().equals("java.util.Vector"))) {
                alObj = (Vector) obj;
                iObj = alObj.size();
            } else {
                iObj = 1;
            }
        }
        return iObj;
    }

    public String getServiceName() {
        return m_ActionId;
    }

    public void setServiceName(String sActionId) {
        m_ActionId = sActionId;
    }

    public void remove(String key) {
        m_Values.remove(key.toUpperCase().trim());
    }

    public Hashtable getData() {
        return m_Values;
    }

    public String toXmlString() throws Exception {
        Hashtable hm = this.m_Values;
        if (hm == null) {
            return null;
        }
        Enumeration keys = hm.keys();
        KXmlTool kxml = new KXmlTool();
        Element root = kxml.newXml("TALKWEB");
        kxml.appendElement(root, "ActionId", getServiceName());
        Element DataElem = kxml.appendElement(root, "DATA");
        while (keys.hasMoreElements()) {
            String sElem = (String) keys.nextElement();
            Object obj = hm.get(sElem);
            if (obj.getClass().getName().equals("java.util.Vector")) {
                Vector vt = (Vector) obj;
                Element keyElem = kxml.appendElement(DataElem,
                        sElem.toUpperCase());
                for (int i = 0; i < vt.size(); ++i) {
                    Element RowElem = kxml.appendElement(keyElem, "ROW");
                    Object aObj = vt.elementAt(i);
                    if (aObj.getClass().getName().equals("java.util.Hashtable")) {
                        Hashtable htRow = (Hashtable) aObj;
                        Enumeration elems = htRow.keys();
                        while (elems.hasMoreElements()) {
                            // Element RowElem = kxml.appendElement(keyElem, "ROW");
                            String sElemName = (String) elems.nextElement();
                            String sElemText = (String) htRow.get(sElemName);
                            kxml.appendElement(RowElem, sElemName.
                                               toUpperCase(), sElemText);
                        }
                    } else {
                        kxml.appendElement(keyElem, "ROW",
                                           aObj.toString());
                    }
                }
            } else if (obj.getClass().getName().equals("java.util.Hashtable")) {
                Element keyElem = kxml.appendElement(DataElem,
                        sElem.toUpperCase());
                Element RowElem = kxml.appendElement(keyElem, "ROW");
                Hashtable htRow = (Hashtable) obj;
                Enumeration elems = htRow.keys();
                while (elems.hasMoreElements()) {
                    // Element RowElem = kxml.appendElement(keyElem, "ROW");
                    String sElemName = (String) elems.nextElement();
                    String sElemText = (String) htRow.get(sElemName);
                    kxml.appendElement(RowElem, sElemName.
                                       toUpperCase(), sElemText);
                }

            } else {
                kxml.appendElement(DataElem, sElem.toUpperCase(), obj.toString());
            }
        }
        return kxml.toXmlString();
    }
}

⌨️ 快捷键说明

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