Package com.biglybt.core.config.impl
Class ConfigurationManager
java.lang.Object
com.biglybt.core.config.impl.ConfigurationManager
- All Implemented Interfaces:
AEDiagnosticsEvidenceGenerator
A singleton used to store configuration into a bencoded file.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final AEMonitor
private static ConfigurationManager
static final String
private static ConfigurationManager
private static final boolean
private static final FrequencyLimitedDispatcher
private final ParameterListener
private boolean
private final List
<COConfigurationListener> private final Map
<String, ParameterListener[]> private ConcurrentHashMapWrapper
<String, Object> private final List
<COConfigurationManager.ResetToDefaultsListener> private final List
private final Map
<String, List<WeakReference<ParameterListener>>> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAndFireListener
(COConfigurationListener listener) void
addListener
(COConfigurationListener listener) void
addParameterListener
(String parameter, ParameterListener new_listener) void
void
addWeakParameterListener
(String parameter, ParameterListener new_listener) protected static String
bytesToString
(byte[] bytes) boolean
doesParameterNonDefaultExist
(String parameter) Does the given parameter exist.void
dumpConfigChanges
(IndentWriter writer) (package private) void
void
generate
(IndentWriter writer) boolean
getBooleanParameter
(String parameter) boolean
getBooleanParameter
(String parameter, boolean defaultValue) byte[]
getByteParameter
(String parameter) byte[]
getByteParameter
(String parameter, byte[] defaultValue) private byte[]
getByteParameterRaw
(String parameter) getDirectoryParameter
(String parameter) float
getFloatParameter
(String parameter) float
getFloatParameter
(String parameter, float def_val) static ConfigurationManager
static ConfigurationManager
getInstance
(Map data) int
getIntParameter
(String parameter) int
getIntParameter
(String parameter, int defaultValue) getListParameter
(String parameter, List def) long
getLongParameter
(String parameter) long
getLongParameter
(String parameter, long defaultValue) private Long
getLongParameterRaw
(String parameter) getMapParameter
(String parameter, Map def) getParameter
(String name) int[]
getRGBParameter
(String parameter) getStringListParameter
(String parameter) getStringParameter
(String parameter) private String
getStringParameter
(String parameter, byte[] defaultValue) getStringParameter
(String parameter, String defaultValue) boolean
hasParameter
(String key, boolean explicit) Returns true if a parameter with the given name exists.private boolean
ignoreKeyForDump
(String key) protected void
boolean
void
load()
void
private void
private void
notifyParameterListeners
(String parameter) private boolean
notifyParameterListenersIfChanged
(String parameter, byte[] newValue, byte[] oldValue) private boolean
notifyParameterListenersIfChanged
(String parameter, Long newValue, Long oldValue) void
registerExportedParameter
(String name, String key) void
registerTransientParameter
(String param) Use this method to record a parameter as one which can be stored here, but shouldn't be saved in the .config file.void
removeListener
(COConfigurationListener listener) boolean
removeParameter
(String parameter) Remove the given configuration parameter completely.void
removeParameterListener
(String parameter, ParameterListener listener) boolean
removeRGBParameter
(String parameter) void
removeWeakParameterListener
(String parameter, ParameterListener listener) Explicitly removing a weak ParameterListener prevents it from being fired after being de-referenced, but before GC'dvoid
void
save()
void
void
setDirty()
boolean
setParameter
(String parameter, boolean value) boolean
setParameter
(String parameter, byte[] defaultValue) boolean
setParameter
(String parameter, float defaultValue) boolean
setParameter
(String parameter, int defaultValue) boolean
setParameter
(String parameter, long defaultValue) boolean
setParameter
(String parameter, String defaultValue) boolean
setParameter
(String parameter, List value) boolean
setParameter
(String parameter, Map value) void
setParameterRawNoNotify
(String parameter, Object value) Set the raw parameter value to store in the properties map.boolean
setRGBParameter
(String parameter, int[] rgb, Boolean override) boolean
setRGBParameter
(String parameter, int red, int green, int blue, Boolean override) protected static byte[]
stringToBytes
(String str) (package private) void
boolean
verifyParameter
(String parameter, String value)
-
Field Details
-
DEBUG_PARAMETER_LISTENERS
private static final boolean DEBUG_PARAMETER_LISTENERS- See Also:
-
CONFIG_FILENAME
- See Also:
-
config_temp
-
config
-
class_mon
-
propertiesMap
-
transient_properties
-
listenerz
-
parameterListenerz
-
weakParameterListenerz
-
reset_to_def_listeners
-
dirty_dispatcher
-
exportable_parameter_listener
-
exported_parameters
-
imported_parameters
-
exported_parameters_dirty
private volatile boolean exported_parameters_dirty
-
-
Constructor Details
-
ConfigurationManager
private ConfigurationManager() -
ConfigurationManager
-
-
Method Details
-
getInstance
-
getInstance
-
initialise
protected void initialise() -
load
-
load
public void load() -
save
-
save
public void save() -
setDirty
public void setDirty() -
isNewInstall
public boolean isNewInstall() -
getDefinedParameters
-
getBooleanParameter
-
getBooleanParameter
-
setParameter
-
getLongParameterRaw
-
getIntParameter
-
getIntParameter
-
getLongParameter
-
getLongParameter
-
getByteParameterRaw
-
getByteParameter
-
getByteParameter
-
getStringParameter
-
getStringParameter
-
getStringParameter
-
getStringListParameter
-
getListParameter
-
setParameter
-
getMapParameter
-
setParameter
-
getDirectoryParameter
- Throws:
IOException
-
getFloatParameter
-
getFloatParameter
-
setParameter
-
setParameter
-
setParameter
-
setParameter
-
setParameter
-
hasParameter
Returns true if a parameter with the given name exists.- Parameters:
key
- The name of the parameter to check.explicit
- If true, we only check for a value which is definitely stored explicitly, false means that we'll also check against configuration defaults too.
-
verifyParameter
-
setRGBParameter
-
setRGBParameter
-
getRGBParameter
-
getParameter
-
setParameterRawNoNotify
Set the raw parameter value to store in the properties map. This should only be used by trusted callers, and has been added to support external plugin config files.- Parameters:
parameter
- Parameter name.value
- A bencode-ably safe value.
-
registerTransientParameter
Use this method to record a parameter as one which can be stored here, but shouldn't be saved in the .config file. Instead, some external object should be responsible for the parameter's persistency (if it should have any at all). -
removeParameter
Remove the given configuration parameter completely.- Parameters:
parameter
- to remove- Returns:
- true if found and removed, false if not
-
removeRGBParameter
-
doesParameterNonDefaultExist
Does the given parameter exist.- Parameters:
parameter
- to check- Returns:
- true if exists, false if not present
-
notifyParameterListenersIfChanged
-
notifyParameterListenersIfChanged
private boolean notifyParameterListenersIfChanged(String parameter, byte[] newValue, byte[] oldValue) -
addResetToDefaultsListener
-
registerExportedParameter
-
updateExportableParameter
-
exportParameters
void exportParameters() -
loadExportedParameters
private void loadExportedParameters() -
resetToDefaults
public void resetToDefaults() -
notifyParameterListeners
-
addWeakParameterListener
-
removeWeakParameterListener
Explicitly removing a weak ParameterListener prevents it from being fired after being de-referenced, but before GC'd -
addParameterListener
-
removeParameterListener
-
addListener
-
addAndFireListener
-
removeListener
-
ignoreKeyForDump
-
generate
- Specified by:
generate
in interfaceAEDiagnosticsEvidenceGenerator
-
dumpConfigChanges
-
bytesToString
-
stringToBytes
-