1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.settings;
14
15 import java.util.HashSet;
16 import java.util.Set;
17
18 import com.eviware.soapui.model.settings.Settings;
19 import com.eviware.soapui.model.settings.SettingsListener;
20 import com.eviware.soapui.support.types.StringToStringMap;
21
22 /***
23 * Default Settings implementation
24 *
25 * @author Ole.Matzura
26 */
27
28 public class SettingsImpl implements Settings
29 {
30 private final Settings parent;
31 private final StringToStringMap values = new StringToStringMap();
32 private final Set<SettingsListener> listeners = new HashSet<SettingsListener>();
33
34 public SettingsImpl( Settings parent )
35 {
36 this.parent = parent;
37 }
38
39 public boolean isSet( String id )
40 {
41 return values.containsKey( id );
42 }
43
44 public String getString(String id, String defaultValue)
45 {
46 if( values.containsKey( id )) return values.get( id ) ;
47 return parent == null ? defaultValue : parent.getString( id, defaultValue );
48 }
49
50 public void setString(String id, String value)
51 {
52 String oldValue = getString( id, null );
53 values.put( id, value );
54
55 for( SettingsListener listener : listeners )
56 {
57 listener.settingChanged( id, oldValue, value );
58 }
59 }
60
61 public boolean getBoolean(String id )
62 {
63 if( values.containsKey( id )) return Boolean.getBoolean( values.get( id ));
64 return parent == null ? false : parent.getBoolean( id );
65 }
66
67 public void setBoolean(String id, boolean value)
68 {
69 String oldValue = getString( id, null );
70 values.put( id, Boolean.toString( value ));
71
72 for( SettingsListener listener : listeners )
73 {
74 listener.settingChanged( id, oldValue, Boolean.toString( value ));
75 }
76 }
77
78 public long getLong(String id, long defaultValue)
79 {
80 if( values.containsKey( id ))
81 {
82 try
83 {
84 return Long.parseLong(values.get(id));
85 }
86 catch (NumberFormatException e)
87 {
88 }
89 }
90
91 return defaultValue;
92 }
93
94 public void addSettingsListener(SettingsListener listener)
95 {
96 listeners.add( listener );
97 }
98
99 public void removeSettingsListener(SettingsListener listener)
100 {
101 listeners.remove( listener );
102 }
103
104 public void clearSetting(String id)
105 {
106 values.remove( id );
107 }
108 }