1 package net.logAnalyzer.analysis;
2
3 import java.util.Date;
4
5 /***
6 * This analysis result class contains an hashtable of values.
7 *
8 * @author Karim REFEYTON
9 * @version 0.1
10 */
11 public final class SingleValueAnalysis extends LAAnalysis {
12
13 /***
14 * Create a new analysis. Its initial value is <tt>0</tt>.
15 *
16 * @param analyzer
17 * Analyzer.
18 * @param name
19 * Name of the value.
20 */
21 public SingleValueAnalysis(final LAAnalyzer analyzer, final String name) {
22 super(analyzer, new String[] { name });
23 }
24
25 /***
26 * Add the specified value to the specified key.
27 *
28 * @param key
29 * Key of the value to change.
30 * @param value
31 * Value to add.
32 * @return Old value if exists; <tt>0</tt> otherwiser.
33 * @see LAAnalysis#putDoubleValue(Comparable, int, double)
34 * @see LAAnalysis#getDoubleValue(Comparable, int)
35 */
36 public double addToDouble(Comparable key, double value) {
37 return putDoubleValue(key, 0, getDoubleValue(key, 0) + value);
38 }
39
40 /***
41 * Add the specified value to the specified key.
42 *
43 * @param key
44 * Key of the value to change.
45 * @param value
46 * Value to add.
47 * @return Old value if exists; <tt>0</tt> otherwiser.
48 * @see LAAnalysis#putDoubleValue(Comparable, int, double)
49 * @see LAAnalysis#getDoubleValue(Comparable, int)
50 */
51 public double addToDouble(Comparable key, long value) {
52 return putDoubleValue(key, 0, getDoubleValue(key, 0) + value);
53 }
54
55 /***
56 * Add the specified value to the specified key.
57 *
58 * @param key
59 * Key of the value to change.
60 * @param value
61 * Value to add.
62 * @return Old value if exists; <tt>0</tt> otherwiser.
63 * @see LAAnalysis#putLongValue(Comparable, int, long)
64 * @see LAAnalysis#getLongValue(Comparable, int)
65 */
66 public long addToLong(Comparable key, double value) {
67 return putLongValue(key, 0, getLongValue(key, 0) + (long) value);
68 }
69
70 /***
71 * Add the specified value to the specified key.
72 *
73 * @param key
74 * Key of the value to change.
75 * @param value
76 * Value to add.
77 * @return Old value if exists; <tt>0</tt> otherwiser.
78 * @see LAAnalysis#putLongValue(Comparable, int, long)
79 * @see LAAnalysis#getLongValue(Comparable, int)
80 */
81 public long addToLong(Comparable key, long value) {
82 return putLongValue(key, 0, getLongValue(key, 0) + value);
83 }
84
85 /***
86 * Set the specified value to the current value.
87 *
88 * @param key
89 * Key of the value to change.
90 * @param value
91 * Value to add.
92 * @return Old value if exists; <tt>null</tt> otherwise.
93 * @see LAAnalysis#putDateValue(Comparable, int, Date)
94 */
95 public Date put(Comparable key, Date value) {
96 return putDateValue(key, 0, value);
97 }
98
99 /***
100 * Set the specified value to the current value.
101 *
102 * @param key
103 * Key of the value to change.
104 * @param value
105 * Value to add.
106 * @return Old value if exists; <tt>0</tt> otherwise.
107 * @see LAAnalysis#putDoubleValue(Comparable, int, double)
108 */
109 public double put(Comparable key, double value) {
110 return putDoubleValue(key, 0, value);
111 }
112
113 /***
114 * Set the specified value to the current value.
115 *
116 * @param key
117 * Key of the value to change.
118 * @param value
119 * Value to add.
120 * @return Old value if exists; <tt>0</tt> otherwise.
121 * @see LAAnalysis#putLongValue(Comparable, int, long)
122 */
123 public long put(Comparable key, long value) {
124 return putLongValue(key, 0, value);
125 }
126
127 /***
128 * Set the specified value to the current value.
129 *
130 * @param key
131 * Key of the value to change.
132 * @param value
133 * Value to add.
134 * @return Old value if exists; <tt>0</tt> otherwise.
135 * @see LAAnalysis#putStringValue(Comparable, int, String)
136 */
137 public String put(Comparable key, String value) {
138 return putStringValue(key, 0, value);
139 }
140
141 /***
142 * Return the resulting value associated to the specified key.
143 *
144 * @param index
145 * Index of the value.
146 * @return Value; <tt>null</tt> if unknown.
147 * @see LAAnalysis#getDateValue(Comparable, int)
148 */
149 public Date getDate(int index) {
150 return getDateValue(getKey(index), 0);
151 }
152
153 /***
154 * Return the resulting value associated to the specified key.
155 *
156 * @param key
157 * Key of the value.
158 * @return Value; <tt>null</tt> if unknown.
159 * @see LAAnalysis#getDateValue(Comparable, int)
160 */
161 public Date getDate(Comparable key) {
162 return getDateValue(key, 0);
163 }
164
165 /***
166 * Return the resulting value associated to the specified key.
167 *
168 * @param index
169 * Index of the value.
170 * @return Value; <tt>0</tt> if unknown.
171 * @see LAAnalysis#getDoubleValue(Comparable, int)
172 */
173 public double getDouble(int index) {
174 return getDoubleValue(getKey(index), 0);
175 }
176
177 /***
178 * Return the resulting value associated to the specified key.
179 *
180 * @param key
181 * Key of the value.
182 * @return Value; <tt>0</tt> if unknown.
183 * @see LAAnalysis#getDoubleValue(Comparable, int)
184 */
185 public double getDouble(Comparable key) {
186 return getDoubleValue(key, 0);
187 }
188
189 /***
190 * Return the resulting value associated to the specified key.
191 *
192 * @param index
193 * Index of the value.
194 * @return Value; <tt>0</tt> if unknown.
195 * @see LAAnalysis#getLongValue(Comparable, int)
196 */
197 public long getLong(int index) {
198 return getLongValue(getKey(index), 0);
199 }
200
201 /***
202 * Return the resulting value associated to the specified key.
203 *
204 * @param key
205 * Key of the value.
206 * @return Value; <tt>0</tt> if unknown.
207 * @see LAAnalysis#getLongValue(Comparable, int)
208 */
209 public long getLong(Comparable key) {
210 return getLongValue(key, 0);
211 }
212
213 /***
214 * Return the resulting value associated to the specified key.
215 *
216 * @param index
217 * Index of the value.
218 * @return Value; <tt>""</tt> if unknown.
219 * @see LAAnalysis#getStringValue(Comparable, int)
220 */
221 public String getString(int index) {
222 return getStringValue(getKey(index), 0);
223 }
224
225 /***
226 * Return the resulting value associated to the specified key.
227 *
228 * @param key
229 * Key of the value.
230 * @return Value; <tt>""</tt> if unknown.
231 * @see LAAnalysis#getStringValue(Comparable, int)
232 */
233 public String getString(Comparable key) {
234 return getStringValue(key, 0);
235 }
236
237 /***
238 * Return the resulting value associated to the specified key.
239 *
240 * @param index
241 * Index of the value.
242 * @return Value; <tt>null</tt> if unknown.
243 * @see LAAnalysis#getObjectValue(Comparable, int)
244 */
245 public Object getValue(int index) {
246 return getObjectValue(getKey(index), 0);
247 }
248
249 /***
250 * Return the resulting value associated to the specified key.
251 *
252 * @param key
253 * Key of the value.
254 * @return Value; <tt>null</tt> if unknown.
255 * @see LAAnalysis#getObjectValue(Comparable, int)
256 */
257 public Object getValue(Comparable key) {
258 return getObjectValue(key, 0);
259 }
260
261 /***
262 * Return the value name.
263 *
264 * @return Value name.
265 * @see LAAnalysis#getValueName(int)
266 */
267 public String getName() {
268 return getValueName(0);
269 }
270
271 /***
272 * Change the specified old key to the new key.
273 *
274 * @param oldKey
275 * Key to change.
276 * @param newKey
277 * New key.
278 */
279 public void change(Comparable oldKey, Comparable newKey) {
280 changeKey(oldKey, newKey);
281 }
282
283 /***
284 * Remove the specified key of the analysis.
285 *
286 * @param key
287 * Key to remove.
288 */
289 public void remove(Comparable key) {
290 removeKey(key);
291 }
292
293 /***
294 * Remove the key at the specified index of the analysis.
295 *
296 * @param keyIndex
297 * Key index to remove.
298 */
299 public void remove(int keyIndex) {
300 removeKey(keyIndex);
301 }
302
303 /***
304 * Sort results form greatest to lowest.
305 */
306 public void sortDESC() {
307 sortByValueDESC(0);
308 }
309 }