Class AbstractPreferences
- java.lang.Object
-
- org.openstreetmap.josm.spi.preferences.AbstractPreferences
-
- All Implemented Interfaces:
IPreferences
- Direct Known Subclasses:
MemoryPreferences,Preferences
public abstract class AbstractPreferences extends java.lang.Object implements IPreferences
Abstract implementation of theIPreferencesinterface.- Since:
- 12847
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringKEY_SENSITIVE_KEYSThe preference key for sensitive keysprivate static java.util.Set<java.lang.String>SENSITIVE_KEYSA set of sensitive keys that should not be seen/distributed outside of specific callers (like aCredentialsAgent)
-
Constructor Summary
Constructors Constructor Description AbstractPreferences()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddSensitive(CredentialsAgent caller, java.lang.String key)Add sensitive keysjava.lang.Stringget(java.lang.String key, java.lang.String def)Get settings value for a certain key and provide a default value.java.util.Map<java.lang.String,java.lang.String>getAllPrefix(java.lang.String prefix)Gets all normal (string) settings that have a key starting with the prefixjava.util.List<java.lang.String>getAllPrefixCollectionKeys(java.lang.String prefix)Gets all list settings that have a key starting with the prefixabstract java.util.Map<java.lang.String,Setting<?>>getAllSettings()Gets a map of all settings that are currently storedbooleangetBoolean(java.lang.String key, boolean def)Gets a boolean preferencedoublegetDouble(java.lang.String key, double def)Gets a double preferenceintgetInt(java.lang.String key, int def)Gets an integer preferencejava.util.List<java.lang.String>getList(java.lang.String key, java.util.List<java.lang.String> def)Get a list of values for a certain keyjava.util.List<java.util.List<java.lang.String>>getListOfLists(java.lang.String key, java.util.List<java.util.List<java.lang.String>> def)Get an array of values (list of lists) for a certain keyjava.util.List<java.util.Map<java.lang.String,java.lang.String>>getListOfMaps(java.lang.String key, java.util.List<java.util.Map<java.lang.String,java.lang.String>> def)Gets a list of key/value maps.longgetLong(java.lang.String key, long def)Gets a long preferencejava.util.Collection<java.lang.String>getSensitive()Get sensitive keysabstract <T extends Setting<?>>
TgetSetting(java.lang.String key, T def, java.lang.Class<T> klass)Get settings value for a certain key and provide default a value.private voidpopulateSensitiveKeys()Populate the sensitive key set from preferencesbooleanput(java.lang.String key, java.lang.String value)Set a value for a certain setting.booleanputBoolean(java.lang.String key, boolean value)Set a boolean value for a certain setting.booleanputDouble(java.lang.String key, double value)Set a boolean value for a certain setting.booleanputInt(java.lang.String key, int value)Set an integer value for a certain setting.booleanputList(java.lang.String key, java.util.List<java.lang.String> value)Set a list of values for a certain key.booleanputListOfLists(java.lang.String key, java.util.List<java.util.List<java.lang.String>> value)Set an array of values (list of lists) for a certain key.booleanputListOfMaps(java.lang.String key, java.util.List<java.util.Map<java.lang.String,java.lang.String>> value)Set an a list of key/value maps.booleanputLong(java.lang.String key, long value)Set a long value for a certain setting.abstract booleanputSetting(java.lang.String key, Setting<?> setting)Set a value for a certain setting.voidremoveSensitive(java.lang.String key)Remove sensitive keys.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openstreetmap.josm.spi.preferences.IPreferences
addKeyPreferenceChangeListener, addPreferenceChangeListener, get, getBoolean, getKeySet, getList, getListOfLists, getListOfMaps, removeKeyPreferenceChangeListener, removePreferenceChangeListener
-
-
-
-
Field Detail
-
KEY_SENSITIVE_KEYS
private static final java.lang.String KEY_SENSITIVE_KEYS
The preference key for sensitive keys- See Also:
- Constant Field Values
-
SENSITIVE_KEYS
private static final java.util.Set<java.lang.String> SENSITIVE_KEYS
A set of sensitive keys that should not be seen/distributed outside of specific callers (like aCredentialsAgent)
-
-
Constructor Detail
-
AbstractPreferences
public AbstractPreferences()
-
-
Method Detail
-
get
public java.lang.String get(java.lang.String key, java.lang.String def)
Description copied from interface:IPreferencesGet settings value for a certain key and provide a default value.- Specified by:
getin interfaceIPreferences- Parameters:
key- the identifier for the settingdef- the default value. For each call of get() with a given key, the default value must be the same.defmay be null.- Returns:
- the corresponding value if the property has been set before,
defotherwise
-
put
public boolean put(java.lang.String key, java.lang.String value)
Description copied from interface:IPreferencesSet a value for a certain setting.- Specified by:
putin interfaceIPreferences- Parameters:
key- the unique identifier for the settingvalue- the value of the setting. Can be null or "" which both removes the key-value entry.- Returns:
true, if something has changed (i.e. value is different than before)
-
getBoolean
public boolean getBoolean(java.lang.String key, boolean def)
Description copied from interface:IPreferencesGets a boolean preference- Specified by:
getBooleanin interfaceIPreferences- Parameters:
key- The preference keydef- The default value to use- Returns:
- The boolean,
falseif it could not be parsed, the default value if it is unset
-
putBoolean
public boolean putBoolean(java.lang.String key, boolean value)
Description copied from interface:IPreferencesSet a boolean value for a certain setting.- Specified by:
putBooleanin interfaceIPreferences- Parameters:
key- the unique identifier for the settingvalue- The new value- Returns:
true, if something has changed (i.e. value is different than before)
-
getInt
public int getInt(java.lang.String key, int def)
Description copied from interface:IPreferencesGets an integer preference- Specified by:
getIntin interfaceIPreferences- Parameters:
key- The preference keydef- The default value to use- Returns:
- The integer
-
putInt
public boolean putInt(java.lang.String key, int value)
Description copied from interface:IPreferencesSet an integer value for a certain setting.- Specified by:
putIntin interfaceIPreferences- Parameters:
key- the unique identifier for the settingvalue- The new value- Returns:
true, if something has changed (i.e. value is different than before)
-
getLong
public long getLong(java.lang.String key, long def)
Description copied from interface:IPreferencesGets a long preference- Specified by:
getLongin interfaceIPreferences- Parameters:
key- The preference keydef- The default value to use- Returns:
- The long value or the default value if it could not be parsed
-
putLong
public boolean putLong(java.lang.String key, long value)
Description copied from interface:IPreferencesSet a long value for a certain setting.- Specified by:
putLongin interfaceIPreferences- Parameters:
key- the unique identifier for the settingvalue- The new value- Returns:
true, if something has changed (i.e. value is different than before)
-
getDouble
public double getDouble(java.lang.String key, double def)
Description copied from interface:IPreferencesGets a double preference- Specified by:
getDoublein interfaceIPreferences- Parameters:
key- The preference keydef- The default value to use- Returns:
- The double value or the default value if it could not be parsed
-
putDouble
public boolean putDouble(java.lang.String key, double value)
Description copied from interface:IPreferencesSet a boolean value for a certain setting.- Specified by:
putDoublein interfaceIPreferences- Parameters:
key- the unique identifier for the settingvalue- The new value- Returns:
true, if something has changed (i.e. value is different than before)
-
getList
public java.util.List<java.lang.String> getList(java.lang.String key, java.util.List<java.lang.String> def)
Description copied from interface:IPreferencesGet a list of values for a certain key- Specified by:
getListin interfaceIPreferences- Parameters:
key- the identifier for the settingdef- the default value.- Returns:
- the corresponding value if the property has been set before,
defotherwise
-
putList
public boolean putList(java.lang.String key, java.util.List<java.lang.String> value)
Description copied from interface:IPreferencesSet a list of values for a certain key.- Specified by:
putListin interfaceIPreferences- Parameters:
key- the identifier for the settingvalue- The new value- Returns:
true, if something has changed (i.e. value is different than before)
-
getListOfLists
public java.util.List<java.util.List<java.lang.String>> getListOfLists(java.lang.String key, java.util.List<java.util.List<java.lang.String>> def)
Description copied from interface:IPreferencesGet an array of values (list of lists) for a certain key- Specified by:
getListOfListsin interfaceIPreferences- Parameters:
key- the identifier for the settingdef- the default value.- Returns:
- the corresponding value if the property has been set before,
defotherwise
-
putListOfLists
public boolean putListOfLists(java.lang.String key, java.util.List<java.util.List<java.lang.String>> value)
Description copied from interface:IPreferencesSet an array of values (list of lists) for a certain key.- Specified by:
putListOfListsin interfaceIPreferences- Parameters:
key- the identifier for the settingvalue- the new value- Returns:
true, if something has changed (i.e. value is different than before)
-
getListOfMaps
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getListOfMaps(java.lang.String key, java.util.List<java.util.Map<java.lang.String,java.lang.String>> def)
Description copied from interface:IPreferencesGets a list of key/value maps.- Specified by:
getListOfMapsin interfaceIPreferences- Parameters:
key- the key to search atdef- the default value to use- Returns:
- the corresponding value if the property has been set before,
defotherwise
-
putListOfMaps
public boolean putListOfMaps(java.lang.String key, java.util.List<java.util.Map<java.lang.String,java.lang.String>> value)
Description copied from interface:IPreferencesSet an a list of key/value maps.- Specified by:
putListOfMapsin interfaceIPreferences- Parameters:
key- the key to store the list invalue- a list of key/value maps- Returns:
trueif the value was changed
-
getAllSettings
public abstract java.util.Map<java.lang.String,Setting<?>> getAllSettings()
Gets a map of all settings that are currently stored- Returns:
- The settings
-
putSetting
public abstract boolean putSetting(java.lang.String key, Setting<?> setting)
Set a value for a certain setting. The changed setting is saved to the preference file immediately. Due to caching mechanisms on modern operating systems and hardware, this shouldn't be a performance problem.- Parameters:
key- the unique identifier for the settingsetting- the value of the setting. In case it is null, the key-value entry will be removed.- Returns:
true, if something has changed (i.e. value is different than before)
-
getSetting
public abstract <T extends Setting<?>> T getSetting(java.lang.String key, T def, java.lang.Class<T> klass)
Get settings value for a certain key and provide default a value.- Type Parameters:
T- the setting type- Parameters:
key- the identifier for the settingdef- the default value. For each call of getSetting() with a given key, the default value must be the same.defmust not be null, but the value ofdefcan be null.klass- the setting type (same as T)- Returns:
- the corresponding value if the property has been set before,
defotherwise
-
getAllPrefix
public java.util.Map<java.lang.String,java.lang.String> getAllPrefix(java.lang.String prefix)
Gets all normal (string) settings that have a key starting with the prefix- Parameters:
prefix- The start of the key- Returns:
- The key names of the settings
-
getAllPrefixCollectionKeys
public java.util.List<java.lang.String> getAllPrefixCollectionKeys(java.lang.String prefix)
Gets all list settings that have a key starting with the prefix- Parameters:
prefix- The start of the key- Returns:
- The key names of the list settings
-
addSensitive
public void addSensitive(CredentialsAgent caller, java.lang.String key)
Description copied from interface:IPreferencesAdd sensitive keys- Specified by:
addSensitivein interfaceIPreferences- Parameters:
caller- The calling agentkey- The key that may contain sensitive information
-
getSensitive
public java.util.Collection<java.lang.String> getSensitive()
Description copied from interface:IPreferencesGet sensitive keys- Specified by:
getSensitivein interfaceIPreferences- Returns:
- The sensitive keys
-
removeSensitive
public void removeSensitive(java.lang.String key)
Description copied from interface:IPreferencesRemove sensitive keys. This removes the key from the sensitive list and removes the stored preference value.- Specified by:
removeSensitivein interfaceIPreferences- Parameters:
key- The key to remove
-
populateSensitiveKeys
private void populateSensitiveKeys()
Populate the sensitive key set from preferences
-
-