1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.qedeq.kernel.xml.handler.common;
17
18 import java.text.DateFormat;
19 import java.text.ParseException;
20 import java.text.SimpleDateFormat;
21 import java.util.Date;
22 import java.util.HashMap;
23 import java.util.Iterator;
24 import java.util.Map;
25 import java.util.SortedMap;
26 import java.util.TreeMap;
27
28
29
30
31
32
33
34
35
36
37
38
39 public class SimpleAttributes {
40
41
42 private Map map = new HashMap();
43
44
45
46
47
48
49
50 public final void add(final String key, final String value) {
51 if (map.containsKey(key)) {
52 throw new IllegalArgumentException(
53 "Key " + key + " already known with value: " + map.get(key));
54 }
55 map.put(key, value);
56 }
57
58
59
60
61
62
63
64 public final String getString(final String key) {
65 return (String) map.get(key);
66 }
67
68
69
70
71
72
73
74
75
76 public final Integer getInteger(final String key) {
77 String value = (String) map.get(key);
78 if (value != null) {
79 value = value.trim();
80 }
81 if (value == null || value.length() == 0) {
82 return null;
83 }
84 return new Integer(value);
85 }
86
87
88
89
90
91
92
93
94
95 public final Boolean getBoolean(final String key) {
96 String value = ((String) map.get(key));
97 if (value != null) {
98 value = value.trim();
99 }
100 if (value == null || value.length() == 0) {
101 return null;
102 }
103 return Boolean.valueOf(value);
104 }
105
106
107
108
109
110
111
112
113
114
115 public final Date getDate(final String key) {
116 String value = (String) map.get(key);
117 if (value != null) {
118 value = value.trim();
119 }
120 if (value == null || value.length() == 0) {
121 return null;
122 }
123 try {
124 DateFormat formater = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
125 Date date = formater.parse(value);
126 return date;
127 } catch (ParseException e) {
128 throw new IllegalArgumentException(e.toString());
129 }
130 }
131
132
133
134
135
136
137 public final String[] getKeySortedStringValues() {
138 SortedMap sorted = new TreeMap(map);
139 return (String[]) sorted.values().toArray(new String[0]);
140 }
141
142 public String toString() {
143 final StringBuffer buffer = new StringBuffer();
144 final Iterator iterator = map.entrySet().iterator();
145 while (iterator.hasNext()) {
146 Map.Entry entry = (Map.Entry) iterator.next();
147 buffer.append(entry.getKey() + "=\"" + entry.getValue() + "\" ");
148 }
149 return buffer.toString();
150 }
151
152 }