Class DynamicCombinedConfiguration
- All Implemented Interfaces:
Serializable
,Cloneable
,Configuration
,ConfigurationListener
,Reloadable
- Since:
- 1.6
- Version:
- $Id: DynamicCombinedConfiguration.java 1534064 2013-10-21 08:44:33Z henning $
- Author:
- Commons Configuration team
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.commons.configuration.HierarchicalConfiguration
HierarchicalConfiguration.BuilderVisitor, HierarchicalConfiguration.Node, HierarchicalConfiguration.NodeVisitor
-
Field Summary
Fields inherited from class org.apache.commons.configuration.CombinedConfiguration
EVENT_COMBINED_INVALIDATE
Fields inherited from class org.apache.commons.configuration.HierarchicalConfiguration
EVENT_ADD_NODES, EVENT_CLEAR_TREE, EVENT_SUBNODE_CHANGED
Fields inherited from class org.apache.commons.configuration.AbstractConfiguration
END_TOKEN, EVENT_ADD_PROPERTY, EVENT_CLEAR, EVENT_CLEAR_PROPERTY, EVENT_READ_PROPERTY, EVENT_SET_PROPERTY, START_TOKEN
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new instance ofDynamicCombinedConfiguration
that uses a union combiner.Creates a new instance ofDynamicCombinedConfiguration
and initializes the combiner to be used. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addConfiguration
(AbstractConfiguration config, String name, String at) Adds a new configuration to this combined configuration.void
Adds a configuration listener to this object.void
Adds a new configuration error listener to this object.void
addNodes
(String key, Collection<? extends ConfigurationNode> nodes) Adds a collection of nodes at the specified position of the configuration tree.void
addProperty
(String key, Object value) Add a property to the configuration.void
clear()
Clears this configuration.void
Removes all registered configuration listeners.void
Removes all registered error listeners.void
clearProperty
(String key) Removes the property with the given key.void
Removes all values of the property with the given name and of keys that start with this name.clone()
Returns a copy of this object.configurationAt
(String key) Returns a hierarchical subnode configuration for the node specified by the given key.configurationAt
(String key, boolean supportUpdates) Returns a hierarchical subnode configuration object that wraps the configuration node specified by the given key.configurationsAt
(String key) Returns a list of sub configurations for all configuration nodes selected by the given key.boolean
containsKey
(String key) Checks if the specified key is contained in this configuration.getBigDecimal
(String key) Get aBigDecimal
associated with the given configuration key.getBigDecimal
(String key, BigDecimal defaultValue) Get aBigDecimal
associated with the given configuration key.getBigInteger
(String key) Get aBigInteger
associated with the given configuration key.getBigInteger
(String key, BigInteger defaultValue) Get aBigInteger
associated with the given configuration key.boolean
getBoolean
(String key) Get a boolean associated with the given configuration key.boolean
getBoolean
(String key, boolean defaultValue) Get a boolean associated with the given configuration key.getBoolean
(String key, Boolean defaultValue) Obtains the value of the specified key and tries to convert it into aBoolean
object.byte
Get a byte associated with the given configuration key.byte
Get a byte associated with the given configuration key.Get aByte
associated with the given configuration key.getConfiguration
(int index) Returns the configuration at the specified index.getConfiguration
(String name) Returns the configuration with the given name.Returns a collection with all configuration event listeners that are currently registered at this object.Returns a set with the names of all configurations contained in this combined configuration.double
Get a double associated with the given configuration key.double
Get a double associated with the given configuration key.Get aDouble
associated with the given configuration key.Returns a collection with all configuration error listeners that are currently registered at this object.Returns the expression engine used by this configuration.float
Get a float associated with the given configuration key.float
Get a float associated with the given configuration key.Get aFloat
associated with the given configuration key.int
Get a int associated with the given configuration key.int
Get a int associated with the given configuration key.getInteger
(String key, Integer defaultValue) Get anInteger
associated with the given configuration key.getKeys()
Returns an iterator with all keys defined in this configuration.Returns an iterator with all keys defined in this configuration that start with the given prefix.Get a List of strings associated with the given configuration key.Get a List of strings associated with the given configuration key.long
Get a long associated with the given configuration key.long
Get a long associated with the given configuration key.Get aLong
associated with the given configuration key.int
getMaxIndex
(String key) Returns the maximum defined index for the given key.Returns the node combiner that is used for creating the combined node structure.int
Returns the number of configurations that are contained in this combined configuration.getProperties
(String key) Get a list of properties associated with the given configuration key.getProperty
(String key) Fetches the specified property.getRoot()
Returns the root node of this hierarchical configuration.Returns the configuration root node of this combined configuration.short
Get a short associated with the given configuration key.short
Get a short associated with the given configuration key.Get aShort
associated with the given configuration key.Returns the configuration source, in which the specified key is defined.Get a string associated with the given configuration key.Get a string associated with the given configuration key.String[]
getStringArray
(String key) Get an array of strings associated with the given configuration key.Returns a configuration with the same content as this configuration, but with all variables replaced by their actual values.void
Invalidates the current combined configuration.void
boolean
isEmpty()
Checks if this configuration is empty.removeConfiguration
(String name) Removes the configuration with the specified name.boolean
removeConfiguration
(Configuration config) Removes the specified configuration from this combined configuration.removeConfigurationAt
(int index) Removes the configuration at the specified index.boolean
Removes the specified event listener so that it does not receive any further events caused by this object.boolean
Removes the specified error listener so that it does not receive any further events caused by this object.protected Object
Returns an object from the store described by the key.void
setExpressionEngine
(ExpressionEngine expressionEngine) Sets the expression engine to be used by this configuration.void
setKeyPattern
(String pattern) void
setLoggerName
(String name) Set the name of the Logger to use on each CombinedConfiguration.void
setNodeCombiner
(NodeCombiner nodeCombiner) Sets the node combiner.void
setProperty
(String key, Object value) Sets the value of the specified property.void
Sets the root node of this hierarchical configuration.void
setRootNode
(ConfigurationNode rootNode) Sets the root node of this hierarchical configuration.Creates a newConfiguration
object containing all keys that start with the specified prefix.Methods inherited from class org.apache.commons.configuration.CombinedConfiguration
addConfiguration, addConfiguration, configurationChanged, fetchNodeList, getConfigurationNameList, getConfigurations, getConversionExpressionEngine, isForceReloadCheck, isIgnoreReloadExceptions, performReloadCheck, setConversionExpressionEngine, setForceReloadCheck, setIgnoreReloadExceptions
Methods inherited from class org.apache.commons.configuration.HierarchicalReloadableConfiguration
getReloadLock
Methods inherited from class org.apache.commons.configuration.HierarchicalConfiguration
addPropertyDirect, clearNode, clearNode, clearReferences, createAddPath, createNode, createSubnodeConfiguration, createSubnodeConfiguration, fetchAddNode, findLastPathNode, findPropertyNodes, getDefaultExpressionEngine, nodeDefined, nodeDefined, removeNode, removeNode, setDefaultExpressionEngine, subnodeConfigurationChanged
Methods inherited from class org.apache.commons.configuration.AbstractConfiguration
addErrorLogListener, append, clearPropertyDirect, copy, createInterpolator, getDefaultListDelimiter, getDelimiter, getInterpolator, getListDelimiter, getLogger, getProperties, getSubstitutor, interpolate, interpolate, interpolateHelper, isDelimiterParsingDisabled, isScalarValue, isThrowExceptionOnMissing, setDefaultListDelimiter, setDelimiter, setDelimiterParsingDisabled, setListDelimiter, setLogger, setThrowExceptionOnMissing
Methods inherited from class org.apache.commons.configuration.event.EventSource
createErrorEvent, createEvent, fireError, fireEvent, isDetailEvents, setDetailEvents
-
Constructor Details
-
DynamicCombinedConfiguration
Creates a new instance ofDynamicCombinedConfiguration
and initializes the combiner to be used.- Parameters:
comb
- the node combiner (can be null, then a union combiner is used as default)
-
DynamicCombinedConfiguration
public DynamicCombinedConfiguration()Creates a new instance ofDynamicCombinedConfiguration
that uses a union combiner.- See Also:
-
-
Method Details
-
setKeyPattern
-
getKeyPattern
-
setLoggerName
Set the name of the Logger to use on each CombinedConfiguration.- Parameters:
name
- The Logger name.
-
getNodeCombiner
Returns the node combiner that is used for creating the combined node structure.- Overrides:
getNodeCombiner
in classCombinedConfiguration
- Returns:
- the node combiner
-
setNodeCombiner
Sets the node combiner. This object will be used when the combined node structure is to be constructed. It must not be null, otherwise anIllegalArgumentException
exception is thrown. Changing the node combiner causes an invalidation of this combined configuration, so that the new combiner immediately takes effect.- Overrides:
setNodeCombiner
in classCombinedConfiguration
- Parameters:
nodeCombiner
- the node combiner
-
addConfiguration
Adds a new configuration to this combined configuration. It is possible (but not mandatory) to give the new configuration a name. This name must be unique, otherwise aConfigurationRuntimeException
will be thrown. With the optionalat
argument you can specify where in the resulting node structure the content of the added configuration should appear. This is a string that uses dots as property delimiters (independent on the current expression engine). For instance if you pass in the string"database.tables"
, all properties of the added configuration will occur in this branch.- Overrides:
addConfiguration
in classCombinedConfiguration
- Parameters:
config
- the configuration to add (must not be null)name
- the name of this configuration (can be null)at
- the position of this configuration in the combined tree (can be null)
-
getNumberOfConfigurations
Returns the number of configurations that are contained in this combined configuration.- Overrides:
getNumberOfConfigurations
in classCombinedConfiguration
- Returns:
- the number of contained configurations
-
getConfiguration
Returns the configuration at the specified index. The contained configurations are numbered in the order they were added to this combined configuration. The index of the first configuration is 0.- Overrides:
getConfiguration
in classCombinedConfiguration
- Parameters:
index
- the index- Returns:
- the configuration at this index
-
getConfiguration
Returns the configuration with the given name. This can be null if no such configuration exists.- Overrides:
getConfiguration
in classCombinedConfiguration
- Parameters:
name
- the name of the configuration- Returns:
- the configuration with this name
-
getConfigurationNames
Returns a set with the names of all configurations contained in this combined configuration. Of course here are only these configurations listed, for which a name was specified when they were added.- Overrides:
getConfigurationNames
in classCombinedConfiguration
- Returns:
- a set with the names of the contained configurations (never null)
-
removeConfiguration
Removes the configuration with the specified name.- Overrides:
removeConfiguration
in classCombinedConfiguration
- Parameters:
name
- the name of the configuration to be removed- Returns:
- the removed configuration (null if this configuration was not found)
-
removeConfiguration
Removes the specified configuration from this combined configuration.- Overrides:
removeConfiguration
in classCombinedConfiguration
- Parameters:
config
- the configuration to be removed- Returns:
- a flag whether this configuration was found and could be removed
-
removeConfigurationAt
Removes the configuration at the specified index.- Overrides:
removeConfigurationAt
in classCombinedConfiguration
- Parameters:
index
- the index- Returns:
- the removed configuration
-
getRootNode
Returns the configuration root node of this combined configuration. This method will construct a combined node structure using the current node combiner if necessary.- Overrides:
getRootNode
in classCombinedConfiguration
- Returns:
- the combined root node
-
setRootNode
Description copied from class:HierarchicalConfiguration
Sets the root node of this hierarchical configuration.- Overrides:
setRootNode
in classHierarchicalConfiguration
- Parameters:
rootNode
- the root node
-
addProperty
Description copied from interface:Configuration
Add a property to the configuration. If it already exists then the value stated here will be added to the configuration entry. For example, if the property:resource.loader = file
is already present in the configuration and you calladdProperty("resource.loader", "classpath")
Then you will end up with a List like the following:["file", "classpath"]
- Specified by:
addProperty
in interfaceConfiguration
- Overrides:
addProperty
in classAbstractConfiguration
- Parameters:
key
- The key to add the property to.value
- The value to add.
-
clear
Description copied from class:CombinedConfiguration
Clears this configuration. All contained configurations will be removed.- Specified by:
clear
in interfaceConfiguration
- Overrides:
clear
in classCombinedConfiguration
-
clearProperty
Description copied from class:HierarchicalConfiguration
Removes the property with the given key. Properties with names that start with the given key (i.e. properties below the specified key in the hierarchy) won't be affected.- Specified by:
clearProperty
in interfaceConfiguration
- Overrides:
clearProperty
in classHierarchicalConfiguration
- Parameters:
key
- the key of the property to be removed
-
containsKey
Description copied from class:HierarchicalConfiguration
Checks if the specified key is contained in this configuration. Note that for this configuration the term "contained" means that the key has an associated value. If there is a node for this key that has no value but children (either defined or undefined), this method will still return false .- Specified by:
containsKey
in interfaceConfiguration
- Overrides:
containsKey
in classHierarchicalConfiguration
- Parameters:
key
- the key to be chekced- Returns:
- a flag if this key is contained in this configuration
-
getBigDecimal
Description copied from interface:Configuration
Get aBigDecimal
associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getBigDecimal
in interfaceConfiguration
- Overrides:
getBigDecimal
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated BigDecimal if key is found and has valid format, default value otherwise.
-
getBigDecimal
Description copied from class:AbstractConfiguration
Get aBigDecimal
associated with the given configuration key.- Specified by:
getBigDecimal
in interfaceConfiguration
- Overrides:
getBigDecimal
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated BigDecimal if key is found and has valid format
- See Also:
-
getBigInteger
Description copied from interface:Configuration
Get aBigInteger
associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getBigInteger
in interfaceConfiguration
- Overrides:
getBigInteger
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated BigInteger if key is found and has valid format, default value otherwise.
-
getBigInteger
Description copied from class:AbstractConfiguration
Get aBigInteger
associated with the given configuration key.- Specified by:
getBigInteger
in interfaceConfiguration
- Overrides:
getBigInteger
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated BigInteger if key is found and has valid format
- See Also:
-
getBoolean
Description copied from class:AbstractConfiguration
Get a boolean associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getBoolean
in interfaceConfiguration
- Overrides:
getBoolean
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated boolean.
- See Also:
-
getBoolean
Description copied from class:AbstractConfiguration
Obtains the value of the specified key and tries to convert it into aBoolean
object. If the property has no value, the passed in default value will be used.- Specified by:
getBoolean
in interfaceConfiguration
- Overrides:
getBoolean
in classAbstractConfiguration
- Parameters:
key
- the key of the propertydefaultValue
- the default value- Returns:
- the value of this key converted to a
Boolean
- See Also:
-
getBoolean
Description copied from class:AbstractConfiguration
Get a boolean associated with the given configuration key.- Specified by:
getBoolean
in interfaceConfiguration
- Overrides:
getBoolean
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated boolean.
- See Also:
-
getByte
Description copied from interface:Configuration
Get a byte associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getByte
in interfaceConfiguration
- Overrides:
getByte
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated byte.
-
getByte
Description copied from interface:Configuration
Get aByte
associated with the given configuration key.- Specified by:
getByte
in interfaceConfiguration
- Overrides:
getByte
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated byte if key is found and has valid format, default value otherwise.
-
getByte
Description copied from interface:Configuration
Get a byte associated with the given configuration key.- Specified by:
getByte
in interfaceConfiguration
- Overrides:
getByte
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated byte.
-
getDouble
Description copied from interface:Configuration
Get a double associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getDouble
in interfaceConfiguration
- Overrides:
getDouble
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated double.
-
getDouble
Description copied from interface:Configuration
Get aDouble
associated with the given configuration key.- Specified by:
getDouble
in interfaceConfiguration
- Overrides:
getDouble
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated double if key is found and has valid format, default value otherwise.
-
getDouble
Description copied from interface:Configuration
Get a double associated with the given configuration key.- Specified by:
getDouble
in interfaceConfiguration
- Overrides:
getDouble
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated double.
-
getFloat
Description copied from interface:Configuration
Get a float associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getFloat
in interfaceConfiguration
- Overrides:
getFloat
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated float.
-
getFloat
Description copied from interface:Configuration
Get aFloat
associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getFloat
in interfaceConfiguration
- Overrides:
getFloat
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated float if key is found and has valid format, default value otherwise.
-
getFloat
Description copied from interface:Configuration
Get a float associated with the given configuration key.- Specified by:
getFloat
in interfaceConfiguration
- Overrides:
getFloat
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated float.
-
getInt
Description copied from interface:Configuration
Get a int associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getInt
in interfaceConfiguration
- Overrides:
getInt
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated int.
-
getInt
Description copied from interface:Configuration
Get a int associated with the given configuration key.- Specified by:
getInt
in interfaceConfiguration
- Overrides:
getInt
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated int.
-
getInteger
Description copied from interface:Configuration
Get anInteger
associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getInteger
in interfaceConfiguration
- Overrides:
getInteger
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated int if key is found and has valid format, default value otherwise.
-
getKeys
Description copied from class:HierarchicalConfiguration
Returns an iterator with all keys defined in this configuration. Note that the keys returned by this method will not contain any indices. This means that some structure will be lost.- Specified by:
getKeys
in interfaceConfiguration
- Overrides:
getKeys
in classHierarchicalConfiguration
- Returns:
- an iterator with the defined keys in this configuration
-
getKeys
Description copied from class:HierarchicalConfiguration
Returns an iterator with all keys defined in this configuration that start with the given prefix. The returned keys will not contain any indices. This implementation tries to locate a node whose key is the same as the passed in prefix. Then the subtree of this node is traversed, and the keys of all nodes encountered (including attributes) are added to the result set.- Specified by:
getKeys
in interfaceConfiguration
- Overrides:
getKeys
in classHierarchicalConfiguration
- Parameters:
prefix
- the prefix of the keys to start with- Returns:
- an iterator with the found keys
- See Also:
-
getList
Description copied from interface:Configuration
Get a List of strings associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getList
in interfaceConfiguration
- Overrides:
getList
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated List of strings.
-
getList
Description copied from class:AbstractConfiguration
Get a List of strings associated with the given configuration key. If the key doesn't map to an existing object an empty List is returned.- Specified by:
getList
in interfaceConfiguration
- Overrides:
getList
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated List.
- See Also:
-
getLong
Description copied from interface:Configuration
Get a long associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getLong
in interfaceConfiguration
- Overrides:
getLong
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated long.
-
getLong
Description copied from interface:Configuration
Get aLong
associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getLong
in interfaceConfiguration
- Overrides:
getLong
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated long if key is found and has valid format, default value otherwise.
-
getLong
Description copied from interface:Configuration
Get a long associated with the given configuration key.- Specified by:
getLong
in interfaceConfiguration
- Overrides:
getLong
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated long.
-
getProperties
Description copied from interface:Configuration
Get a list of properties associated with the given configuration key. This method expects the given key to have an arbitrary number of String values, each of which is of the form {code key=value}. These strings are split at the equals sign, and the key parts will become keys of the returnedProperties
object, the value parts become values.- Specified by:
getProperties
in interfaceConfiguration
- Overrides:
getProperties
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated properties if key is found.
-
getProperty
Description copied from class:HierarchicalConfiguration
Fetches the specified property. This task is delegated to the associated expression engine.- Specified by:
getProperty
in interfaceConfiguration
- Overrides:
getProperty
in classHierarchicalConfiguration
- Parameters:
key
- the key to be looked up- Returns:
- the found value
-
getShort
Description copied from interface:Configuration
Get a short associated with the given configuration key.- Specified by:
getShort
in interfaceConfiguration
- Overrides:
getShort
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated short.
-
getShort
Description copied from interface:Configuration
Get aShort
associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getShort
in interfaceConfiguration
- Overrides:
getShort
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated short if key is found and has valid format, default value otherwise.
-
getShort
Description copied from interface:Configuration
Get a short associated with the given configuration key.- Specified by:
getShort
in interfaceConfiguration
- Overrides:
getShort
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated short.
-
getString
Description copied from interface:Configuration
Get a string associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.- Specified by:
getString
in interfaceConfiguration
- Overrides:
getString
in classAbstractConfiguration
- Parameters:
key
- The configuration key.defaultValue
- The default value.- Returns:
- The associated string if key is found and has valid format, default value otherwise.
-
getString
Description copied from class:AbstractConfiguration
Get a string associated with the given configuration key.- Specified by:
getString
in interfaceConfiguration
- Overrides:
getString
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated string.
- See Also:
-
getStringArray
Description copied from class:AbstractConfiguration
Get an array of strings associated with the given configuration key. If the key doesn't map to an existing object, an empty array is returned. If a property is added to a configuration, it is checked whether it contains multiple values. This is obvious if the added object is a list or an array. For strings it is checked whether the string contains the list delimiter character that can be specified using thesetListDelimiter()
method. If this is the case, the string is split at these positions resulting in a property with multiple values.- Specified by:
getStringArray
in interfaceConfiguration
- Overrides:
getStringArray
in classAbstractConfiguration
- Parameters:
key
- The configuration key.- Returns:
- The associated string array if key is found.
- See Also:
-
isEmpty
Description copied from class:HierarchicalConfiguration
Checks if this configuration is empty. Empty means that there are no keys with any values, though there can be some (empty) nodes.- Specified by:
isEmpty
in interfaceConfiguration
- Overrides:
isEmpty
in classHierarchicalConfiguration
- Returns:
- a flag if this configuration is empty
-
setProperty
Description copied from class:HierarchicalConfiguration
Sets the value of the specified property.- Specified by:
setProperty
in interfaceConfiguration
- Overrides:
setProperty
in classHierarchicalConfiguration
- Parameters:
key
- the key of the property to setvalue
- the new value of this property
-
subset
Description copied from class:HierarchicalConfiguration
Creates a newConfiguration
object containing all keys that start with the specified prefix. This implementation will return aHierarchicalConfiguration
object so that the structure of the keys will be saved. The nodes selected by the prefix (it is possible that multiple nodes are selected) are mapped to the root node of the returned configuration, i.e. their children and attributes will become children and attributes of the new root node. However a value of the root node is only set if exactly one of the selected nodes contain a value (if multiple nodes have a value, there is simply no way to decide how these values are merged together). Note that the returnedConfiguration
object is not connected to its source configuration: updates on the source configuration are not reflected in the subset and vice versa.- Specified by:
subset
in interfaceConfiguration
- Overrides:
subset
in classHierarchicalConfiguration
- Parameters:
prefix
- the prefix of the keys for the subset- Returns:
- a new configuration object representing the selected subset
- See Also:
-
getRoot
Description copied from class:HierarchicalConfiguration
Returns the root node of this hierarchical configuration. This method exists for backwards compatibility only. New code should use theHierarchicalConfiguration.getRootNode()
method instead, which operates on the preferred data typeConfigurationNode
.- Overrides:
getRoot
in classHierarchicalConfiguration
- Returns:
- the root node
-
setRoot
Description copied from class:HierarchicalConfiguration
Sets the root node of this hierarchical configuration. This method exists for backwards compatibility only. New code should use theHierarchicalConfiguration.setRootNode(ConfigurationNode)
method instead, which operates on the preferred data typeConfigurationNode
.- Overrides:
setRoot
in classHierarchicalConfiguration
- Parameters:
node
- the root node
-
getExpressionEngine
Description copied from class:HierarchicalConfiguration
Returns the expression engine used by this configuration. This method will never return null; if no specific expression engine was set, the default expression engine will be returned.- Overrides:
getExpressionEngine
in classHierarchicalConfiguration
- Returns:
- the current expression engine
-
setExpressionEngine
Description copied from class:HierarchicalConfiguration
Sets the expression engine to be used by this configuration. All property keys this configuration has to deal with will be interpreted by this engine.- Overrides:
setExpressionEngine
in classHierarchicalConfiguration
- Parameters:
expressionEngine
- the new expression engine; can be null, then the default expression engine will be used
-
addNodes
Description copied from class:HierarchicalConfiguration
Adds a collection of nodes at the specified position of the configuration tree. This method works similar toaddProperty()
, but instead of a single property a whole collection of nodes can be added - and thus complete configuration sub trees. E.g. with this method it is possible to add parts of anotherHierarchicalConfiguration
object to this object. (However be aware that aConfigurationNode
object can only belong to a single configuration. So if nodes from one configuration are directly added to another one using this method, the structure of the source configuration will be broken. In this case you should clone the nodes to be added before callingaddNodes()
.) If the passed in key refers to an existing and unique node, the new nodes are added to this node. Otherwise a new node will be created at the specified position in the hierarchy.- Overrides:
addNodes
in classHierarchicalConfiguration
- Parameters:
key
- the key where the nodes are to be added; can be null , then they are added to the root nodenodes
- a collection with theNode
objects to be added
-
configurationAt
Description copied from class:HierarchicalConfiguration
Returns a hierarchical subnode configuration object that wraps the configuration node specified by the given key. This method provides an easy means of accessing sub trees of a hierarchical configuration. In the returned configuration the sub tree can directly be accessed, it becomes the root node of this configuration. Because of this the passed in key must select exactly one configuration node; otherwise an
IllegalArgumentException
will be thrown.The difference between this method and the
HierarchicalConfiguration.subset(String)
method is thatsubset()
supports arbitrary subsets of configuration nodes whileconfigurationAt()
only returns a single sub tree. Please refer to the documentation of theSubnodeConfiguration
class to obtain further information about subnode configurations and when they should be used.With the
supportUpdate
flag the behavior of the returnedSubnodeConfiguration
regarding updates of its parent configuration can be determined. A subnode configuration operates on the same nodes as its parent, so changes at one configuration are normally directly visible for the other configuration. There are however changes of the parent configuration, which are not recognized by the subnode configuration per default. An example for this is a reload operation (for file-based configurations): Here the complete node set of the parent configuration is replaced, but the subnode configuration still references the old nodes. If such changes should be detected by the subnode configuration, thesupportUpdates
flag must be set to true. This causes the subnode configuration to reevaluate the key used for its creation each time it is accessed. This guarantees that the subnode configuration always stays in sync with its key, even if the parent configuration's data significantly changes. If such a change makes the key invalid - because it now no longer points to exactly one node -, the subnode configuration is not reconstructed, but keeps its old data. It is then quasi detached from its parent.- Overrides:
configurationAt
in classHierarchicalConfiguration
- Parameters:
key
- the key that selects the sub treesupportUpdates
- a flag whether the returned subnode configuration should be able to handle updates of its parent- Returns:
- a hierarchical configuration that contains this sub tree
- See Also:
-
configurationAt
Description copied from class:HierarchicalConfiguration
Returns a hierarchical subnode configuration for the node specified by the given key. This is a short form forconfigurationAt(key, <b>false</b>)
.- Overrides:
configurationAt
in classHierarchicalConfiguration
- Parameters:
key
- the key that selects the sub tree- Returns:
- a hierarchical configuration that contains this sub tree
- See Also:
-
configurationsAt
Description copied from class:HierarchicalConfiguration
Returns a list of sub configurations for all configuration nodes selected by the given key. This method will evaluate the passed in key (using the currentExpressionEngine
) and then create a subnode configuration for each returned node (likeHierarchicalConfiguration.configurationAt(String)
}). This is especially useful when dealing with list-like structures. As an example consider the configuration that contains data about database tables and their fields. If you need access to all fields of a certain table, you can simply doList fields = config.configurationsAt("tables.table(0).fields.field"); for(Iterator it = fields.iterator(); it.hasNext();) { HierarchicalConfiguration sub = (HierarchicalConfiguration) it.next(); // now the children and attributes of the field node can be // directly accessed String fieldName = sub.getString("name"); String fieldType = sub.getString("type"); ...
- Overrides:
configurationsAt
in classHierarchicalConfiguration
- Parameters:
key
- the key for selecting the desired nodes- Returns:
- a list with hierarchical configuration objects; each configuration represents one of the nodes selected by the passed in key
-
clearTree
Description copied from class:HierarchicalConfiguration
Removes all values of the property with the given name and of keys that start with this name. So if there is a property with the key "foo" and a property with the key "foo.bar", a call ofclearTree("foo")
would remove both properties.- Overrides:
clearTree
in classHierarchicalConfiguration
- Parameters:
key
- the key of the property to be removed
-
getMaxIndex
Description copied from class:HierarchicalConfiguration
Returns the maximum defined index for the given key. This is useful if there are multiple values for this key. They can then be addressed separately by specifying indices from 0 to the return value of this method.- Overrides:
getMaxIndex
in classHierarchicalConfiguration
- Parameters:
key
- the key to be checked- Returns:
- the maximum defined index for this key
-
interpolatedConfiguration
Description copied from class:HierarchicalConfiguration
Returns a configuration with the same content as this configuration, but with all variables replaced by their actual values. This implementation is specific for hierarchical configurations. It clones the current configuration and runs a specialized visitor on the clone, which performs interpolation on the single configuration nodes.- Overrides:
interpolatedConfiguration
in classHierarchicalConfiguration
- Returns:
- a configuration with all variables interpolated
-
getSource
Returns the configuration source, in which the specified key is defined. This method will determine the configuration node that is identified by the given key. The following constellations are possible:- If no node object is found for this key, null is returned.
- If the key maps to multiple nodes belonging to different
configuration sources, a
IllegalArgumentException
is thrown (in this case no unique source can be determined). - If exactly one node is found for the key, the (child) configuration object, to which the node belongs is determined and returned.
- For keys that have been added directly to this combined configuration and that do not belong to the namespaces defined by existing child configurations this configuration will be returned.
- Overrides:
getSource
in classCombinedConfiguration
- Parameters:
key
- the key of a configuration property- Returns:
- the configuration, to which this property belongs or null if the key cannot be resolved
- Throws:
IllegalArgumentException
- if the key maps to multiple properties and the source cannot be determined, or if the key is null
-
addConfigurationListener
Description copied from class:EventSource
Adds a configuration listener to this object.- Overrides:
addConfigurationListener
in classEventSource
- Parameters:
l
- the listener to add
-
removeConfigurationListener
Description copied from class:EventSource
Removes the specified event listener so that it does not receive any further events caused by this object.- Overrides:
removeConfigurationListener
in classEventSource
- Parameters:
l
- the listener to be removed- Returns:
- a flag whether the event listener was found
-
getConfigurationListeners
Description copied from class:EventSource
Returns a collection with all configuration event listeners that are currently registered at this object.- Overrides:
getConfigurationListeners
in classEventSource
- Returns:
- a collection with the registered
ConfigurationListener
s (this collection is a snapshot of the currently registered listeners; manipulating it has no effect on this event source object)
-
clearConfigurationListeners
Description copied from class:EventSource
Removes all registered configuration listeners.- Overrides:
clearConfigurationListeners
in classEventSource
-
addErrorListener
Description copied from class:EventSource
Adds a new configuration error listener to this object. This listener will then be notified about internal problems.- Overrides:
addErrorListener
in classEventSource
- Parameters:
l
- the listener to register (must not be null)
-
removeErrorListener
Description copied from class:EventSource
Removes the specified error listener so that it does not receive any further events caused by this object.- Overrides:
removeErrorListener
in classEventSource
- Parameters:
l
- the listener to remove- Returns:
- a flag whether the listener could be found and removed
-
clearErrorListeners
Description copied from class:EventSource
Removes all registered error listeners.- Overrides:
clearErrorListeners
in classEventSource
-
getErrorListeners
Description copied from class:EventSource
Returns a collection with all configuration error listeners that are currently registered at this object.- Overrides:
getErrorListeners
in classEventSource
- Returns:
- a collection with the registered
ConfigurationErrorListener
s (this collection is a snapshot of the currently registered listeners; it cannot be manipulated)
-
clone
Returns a copy of this object. This implementation performs a deep clone, i.e. all contained configurations will be cloned, too. For this to work, all contained configurations must be cloneable. Registered event listeners won't be cloned. The clone will use the same node combiner than the original.- Overrides:
clone
in classCombinedConfiguration
- Returns:
- the copied object
-
invalidate
Invalidates the current combined configuration. This means that the next time a property is accessed the combined node structure must be re-constructed. Invalidation of a combined configuration also means that an event of typeEVENT_COMBINED_INVALIDATE
is fired. Note that while other events most times appear twice (once before and once after an update), this event is only fired once (after update).- Overrides:
invalidate
in classCombinedConfiguration
-
invalidateAll
-
resolveContainerStore
Description copied from class:AbstractConfiguration
Returns an object from the store described by the key. If the value is a Collection object, replace it with the first object in the collection.- Overrides:
resolveContainerStore
in classAbstractConfiguration
- Parameters:
key
- The property key.- Returns:
- value Value, transparently resolving a possible collection dependency.
-