1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.apache.log4j.chainsaw.prefs;
18
19 import java.util.*;
20
21 /**
22 * @author Paul Smith <psmith@apache.org>
23 */
24 public class LoadSettingsEvent extends SettingsEvent {
25
26 LoadSettingsEvent(Object source, Properties properties) {
27 super(source);
28 this.properties = properties;
29 }
30
31 public String getSetting(String key) {
32 return properties.getProperty(key);
33 }
34
35 public boolean asBoolean(String key) {
36 return Boolean.valueOf(getSetting(key));
37 }
38
39 public int asInt(String key) {
40 String val = getSetting(key);
41 try {
42 return Integer.parseInt(val);
43 } catch (NumberFormatException e) {
44 e.printStackTrace();
45 throw new RuntimeException(
46 "An error occurred retrieving the Integer value of the setting '"
47 + key
48 + "'");
49 }
50
51 }
52
53 private final Properties properties;
54
55 /**
56 * Returns an unmodifiable Collection of values whose
57 * setting key begins (String.startsWith()) the specified
58 * string.
59 *
60 * @param string
61 */
62 public Collection getSettingsStartingWith(String string) {
63 Collection c = new ArrayList();
64
65 for (Map.Entry<Object, Object> objectObjectEntry : properties.entrySet()) {
66 Map.Entry<Object, Object> entry = objectObjectEntry;
67 if (entry.getKey().toString().startsWith(string)) {
68 c.add(entry.getValue());
69 }
70 }
71
72 return Collections.unmodifiableCollection(c);
73
74 }
75 }