public interface ISettingsBean extends IBean
Implements change tracking which is turned off by default.
Also implements registering and notifying setting change listeners.
An instance of ISettingsBean
can be acquired by IModEnv.initSettingsBean(String, java.util.List)
.
IModEnv.initSettingsBean(String, List)
,
IModEnv.getSettingsBean(String)
,
ISettingsGui
,
IBean
Modifier and Type | Method and Description |
---|---|
void |
addAndExecuteChangeListener(ISetting<?> setting,
ISettingChangeListener listener)
Adds a new setting change listener and executes it.
|
void |
addAndExecuteChangeListener(java.util.Set<? extends ISetting<?>> settingSet,
ISettingChangeListener listener)
Adds a new setting change listener and executes it.
|
void |
addChangeListener(ISetting<?> setting,
ISettingChangeListener listener)
Adds a new setting change listener.
|
void |
addChangeListener(java.util.Set<? extends ISetting<?>> settingSet,
ISettingChangeListener listener)
Adds a new setting change listener.
|
void |
clearTrackedChanges()
Clears the previously tracked changes.
|
ISettingsBean |
cloneSettings()
Clones this settings.
|
void |
copyChangedSettingsTo(ISettingsBean targetSettings)
Copies the changed settings to the specified target settings.
|
<T> T |
get(ISetting<T> setting)
Returns the value of the specified setting.
|
java.lang.String |
getSavedByModuleName()
Returns the name of the module that saved the settings.
|
IVersionBean |
getSavedByModuleVersion()
Returns the version of the module that saved the settings.
|
java.util.Date |
getSaveTime()
Returns the time when the settings were saved.
|
java.lang.String |
getSettingValueMapString()
Returns the setting value map as a string.
|
java.util.List<ISetting<?>> |
getValidSettingList()
Returns the list of valid settings that this settings bean is used for.
|
boolean |
isTrackChanges()
Tells if change tracking is enabled.
|
void |
removeChangeListener(ISetting<?> setting,
ISettingChangeListener listener)
Removes a setting change listener.
|
void |
removeChangeListener(java.util.Set<? extends ISetting<?>> settingSet,
ISettingChangeListener listener)
Removes a setting change listener.
|
void |
reset(ISetting<?> setting)
Resets the value of the specified setting, restores the default value of the specified setting.
A setting is reset by removing its value (in which case when queried, the default value will be returned). |
void |
save()
Saves the settings.
|
<T> void |
set(ISetting<T> setting,
T value)
Sets the value of a setting.
|
void |
setTrackChanges(boolean trackChanges)
Sets the state of change tracking.
|
buildDevString, cloneBean, getBeanVer
java.util.List<ISetting<?>> getValidSettingList()
java.lang.String getSettingValueMapString()
<T> T get(ISetting<T> setting)
T
- value type of the settingsetting
- setting whose value to be returnedvoid reset(ISetting<?> setting)
setting
- setting whose value to be reset<T> void set(ISetting<T> setting, T value)
T
- value type of the settingsetting
- setting whose value to be setvalue
- value of the setting to be setvoid addChangeListener(ISetting<?> setting, ISettingChangeListener listener)
Note: listeners are stored as WeakReference
. This means that no need to remove registered listeners, but this also means that if
an anonymous listener with no references is added, it will be removed shortly after!
Adding the same listener to the same setting key multiple times has no side effect (will only be stored and called once).
setting
- setting whose changes to be notified forlistener
- listener to be addedaddChangeListener(Set, ISettingChangeListener)
void addChangeListener(java.util.Set<? extends ISetting<?>> settingSet, ISettingChangeListener listener)
Note: listeners are stored as WeakReference
. This means that no need to remove registered listeners, but this also means that if
an anonymous listener with no references is added, it will be removed shortly after!
Adding the same listener to the same setting key multiple times has no side effect (will only be stored and called once).
settingSet
- set of settings whose changes to be notified forlistener
- listener to be addedaddChangeListener(ISetting, ISettingChangeListener)
void addAndExecuteChangeListener(ISetting<?> setting, ISettingChangeListener listener)
For documentation see addChangeListener(ISetting, ISettingChangeListener)
.
Executing means to call the listener's ISettingChangeListener.valuesChanged(ISettingChangeEvent)
method and passing the specified setting
and this
as the settings bean.
setting
- setting whose changes to be notified forlistener
- listener to be addedaddAndExecuteChangeListener(Set, ISettingChangeListener)
void addAndExecuteChangeListener(java.util.Set<? extends ISetting<?>> settingSet, ISettingChangeListener listener)
For documentation see addChangeListener(Set, ISettingChangeListener)
.
Executing means to call the listener's ISettingChangeListener.valuesChanged(ISettingChangeEvent)
method and passing the specified setting
set and this
as the settings bean.
settingSet
- set of settings whose changes to be notified forlistener
- listener to be addedaddAndExecuteChangeListener(ISetting, ISettingChangeListener)
void removeChangeListener(ISetting<?> setting, ISettingChangeListener listener)
Removing a listener which is not added is a no-op.
setting
- setting to remove the listener fromlistener
- listener to be removedremoveChangeListener(Set, ISettingChangeListener)
void removeChangeListener(java.util.Set<? extends ISetting<?>> settingSet, ISettingChangeListener listener)
Removing a listener which is not added is a no-op.
settingSet
- set of settings to remove the listener fromlistener
- listener to be removedremoveChangeListener(ISetting, ISettingChangeListener)
void save()
ISettingsBean cloneSettings()
Only the following properties are copied, nothing else:
void copyChangedSettingsTo(ISettingsBean targetSettings) throws java.lang.IllegalArgumentException
Only target settings with the same save path are allowed, else IllegalArgumentException
will be thrown.
Moreover setting bean instances returned by the API can only copy to setting bean instances also returned by the API. If you pass an instance created by
you, an IllegalArgumentException
will be thrown.
targetSettings
- target settings to copy the changed settings tojava.lang.IllegalArgumentException
- if the target settings has a different save pathvoid setTrackChanges(boolean trackChanges)
trackChanges
- state of change tracking to be setboolean isTrackChanges()
void clearTrackedChanges()
java.lang.String getSavedByModuleName()
IVersionBean getSavedByModuleVersion()
java.util.Date getSaveTime()
This API documentation is public and is intended for / allowed to be used by anyone.
Scelight home page: https://sites.google.com/site/scelight/
Scelight is a trademark of András Belicza. Copyright © András Belicza, 2013-2015. All rights reserved.