1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package goldengate.common.xml;
22
23 import java.util.Enumeration;
24 import java.util.Hashtable;
25 import java.util.Set;
26
27
28
29
30
31
32
33
34 public class XmlHash {
35 private final Hashtable<String, XmlValue> hashtable;
36
37 public XmlHash(XmlValue[] values) {
38 hashtable = new Hashtable<String, XmlValue>();
39 for (XmlValue xmlValue: values) {
40 if (xmlValue.isMultiple()) {
41 hashtable.put(xmlValue.getName(), xmlValue);
42 } else if (xmlValue.isSubXml()) {
43 this.put(xmlValue);
44 } else {
45 hashtable.put(xmlValue.getName(), xmlValue);
46 }
47 }
48 }
49
50 public XmlValue get(String name) {
51 return hashtable.get(name);
52 }
53
54 public XmlValue put(XmlValue value) {
55 if (value.isMultiple()) {
56 return hashtable.put(value.getName(), value);
57 } else if (value.isSubXml()) {
58 XmlValue ret = hashtable.put(value.getName(), value);
59 if (! value.isEmpty()) {
60 for (XmlValue subvalue: value.getSubXml()) {
61 if (subvalue != null) {
62 this.put(subvalue);
63 }
64 }
65 }
66 return ret;
67 } else {
68 return hashtable.put(value.getName(), value);
69 }
70 }
71
72 public int size() {
73 return hashtable.size();
74 }
75
76 public boolean isEmpty() {
77 return hashtable.isEmpty();
78 }
79
80 public Enumeration<String> keys() {
81 return hashtable.keys();
82 }
83
84 public Enumeration<XmlValue> elements() {
85 return hashtable.elements();
86 }
87
88 public boolean contains(XmlValue value) {
89 return hashtable.contains(value);
90 }
91
92 public boolean containsValue(XmlValue value) {
93 return hashtable.containsValue(value);
94 }
95
96 public boolean containsKey(String key) {
97 return hashtable.containsKey(key);
98 }
99
100 public XmlValue remove(String key) {
101 return hashtable.remove(key);
102 }
103
104 public void clear() {
105 hashtable.clear();
106 }
107
108 public Set<String> keySet() {
109 return hashtable.keySet();
110 }
111
112 }