📄 dictionary.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 + -