1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.log4j.chainsaw.prefs;
18
19 import java.util.ArrayList;
20 import java.util.Collection;
21 import java.util.Collections;
22 import java.util.Iterator;
23 import java.util.Map;
24 import java.util.Properties;
25
26 /***
27 * @author Paul Smith <psmith@apache.org>
28 *
29 */
30 public class LoadSettingsEvent extends SettingsEvent {
31
32 LoadSettingsEvent(Object source, Properties properties) {
33 super(source);
34 this.properties = properties;
35 }
36
37 public String getSetting(String key) {
38 return properties.getProperty(key);
39 }
40
41 public boolean asBoolean(String key) {
42 return Boolean.valueOf(getSetting(key)).booleanValue();
43 }
44
45 public int asInt(String key) {
46 String val = getSetting(key);
47 try {
48 return Integer.parseInt(val);
49 } catch (NumberFormatException e) {
50 e.printStackTrace();
51 throw new RuntimeException(
52 "An error occurred retrieving the Integer value of the setting '"
53 + key
54 + "'");
55 }
56
57 }
58 private final Properties properties;
59 /***
60 * Returns an unmodifiable Collection of values whose
61 * setting key begins (String.startsWith()) the specified
62 * string.
63 * @param string
64 */
65 public Collection getSettingsStartingWith(String string)
66 {
67 Collection c = new ArrayList();
68
69 for (Iterator iter = properties.entrySet().iterator(); iter.hasNext(); )
70 {
71 Map.Entry entry = (Map.Entry) iter.next();
72 if(entry.getKey().toString().startsWith(string)) {
73 c.add(entry.getValue());
74 }
75 }
76
77 return Collections.unmodifiableCollection(c);
78
79 }
80 }