public class DynamicCombinedConfiguration extends CombinedConfiguration
HierarchicalConfiguration.BuilderVisitor, HierarchicalConfiguration.Node, HierarchicalConfiguration.NodeVisitor
EVENT_COMBINED_INVALIDATE
EVENT_ADD_NODES, EVENT_CLEAR_TREE, EVENT_SUBNODE_CHANGED
END_TOKEN, EVENT_ADD_PROPERTY, EVENT_CLEAR, EVENT_CLEAR_PROPERTY, EVENT_READ_PROPERTY, EVENT_SET_PROPERTY, START_TOKEN
Constructor and Description |
---|
DynamicCombinedConfiguration()
Creates a new instance of
DynamicCombinedConfiguration that uses
a union combiner. |
DynamicCombinedConfiguration(NodeCombiner comb)
Creates a new instance of
DynamicCombinedConfiguration and
initializes the combiner to be used. |
Modifier and Type | Method and Description |
---|---|
void |
addConfiguration(AbstractConfiguration config,
String name,
String at)
Adds a new configuration to this combined configuration.
|
void |
addConfigurationListener(ConfigurationListener l)
Adds a configuration listener to this object.
|
void |
addErrorListener(ConfigurationErrorListener l)
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 |
clearConfigurationListeners()
Removes all registered configuration listeners.
|
void |
clearErrorListeners()
Removes all registered error listeners.
|
void |
clearProperty(String key)
Removes the property with the given key.
|
void |
clearTree(String key)
Removes all values of the property with the given name and of keys that
start with this name.
|
Object |
clone()
Returns a copy of this object.
|
SubnodeConfiguration |
configurationAt(String key)
Returns a hierarchical subnode configuration for the node specified by
the given key.
|
SubnodeConfiguration |
configurationAt(String key,
boolean supportUpdates)
Returns a hierarchical subnode configuration object that wraps the
configuration node specified by the given key.
|
List<HierarchicalConfiguration> |
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.
|
BigDecimal |
getBigDecimal(String key)
Get a
BigDecimal associated with the given configuration key. |
BigDecimal |
getBigDecimal(String key,
BigDecimal defaultValue)
Get a
BigDecimal associated with the given configuration key. |
BigInteger |
getBigInteger(String key)
Get a
BigInteger associated with the given configuration key. |
BigInteger |
getBigInteger(String key,
BigInteger defaultValue)
Get a
BigInteger 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.
|
Boolean |
getBoolean(String key,
Boolean defaultValue)
Obtains the value of the specified key and tries to convert it into a
Boolean object. |
byte |
getByte(String key)
Get a byte associated with the given configuration key.
|
byte |
getByte(String key,
byte defaultValue)
Get a byte associated with the given configuration key.
|
Byte |
getByte(String key,
Byte defaultValue)
Get a
Byte associated with the given configuration key. |
Configuration |
getConfiguration(int index)
Returns the configuration at the specified index.
|
Configuration |
getConfiguration(String name)
Returns the configuration with the given name.
|
Collection<ConfigurationListener> |
getConfigurationListeners()
Returns a collection with all configuration event listeners that are
currently registered at this object.
|
Set<String> |
getConfigurationNames()
Returns a set with the names of all configurations contained in this
combined configuration.
|
double |
getDouble(String key)
Get a double associated with the given configuration key.
|
double |
getDouble(String key,
double defaultValue)
Get a double associated with the given configuration key.
|
Double |
getDouble(String key,
Double defaultValue)
Get a
Double associated with the given configuration key. |
Collection<ConfigurationErrorListener> |
getErrorListeners()
Returns a collection with all configuration error listeners that are
currently registered at this object.
|
ExpressionEngine |
getExpressionEngine()
Returns the expression engine used by this configuration.
|
float |
getFloat(String key)
Get a float associated with the given configuration key.
|
float |
getFloat(String key,
float defaultValue)
Get a float associated with the given configuration key.
|
Float |
getFloat(String key,
Float defaultValue)
Get a
Float associated with the given configuration key. |
int |
getInt(String key)
Get a int associated with the given configuration key.
|
int |
getInt(String key,
int defaultValue)
Get a int associated with the given configuration key.
|
Integer |
getInteger(String key,
Integer defaultValue)
Get an
Integer associated with the given configuration key. |
String |
getKeyPattern() |
Iterator<String> |
getKeys()
Returns an iterator with all keys defined in this configuration.
|
Iterator<String> |
getKeys(String prefix)
Returns an iterator with all keys defined in this configuration that
start with the given prefix.
|
List<Object> |
getList(String key)
Get a List of strings associated with the given configuration key.
|
List<Object> |
getList(String key,
List<?> defaultValue)
Get a List of strings associated with the given configuration key.
|
long |
getLong(String key)
Get a long associated with the given configuration key.
|
long |
getLong(String key,
long defaultValue)
Get a long associated with the given configuration key.
|
Long |
getLong(String key,
Long defaultValue)
Get a
Long associated with the given configuration key. |
int |
getMaxIndex(String key)
Returns the maximum defined index for the given key.
|
NodeCombiner |
getNodeCombiner()
Returns the node combiner that is used for creating the combined node
structure.
|
int |
getNumberOfConfigurations()
Returns the number of configurations that are contained in this combined
configuration.
|
Properties |
getProperties(String key)
Get a list of properties associated with the given configuration key.
|
Object |
getProperty(String key)
Fetches the specified property.
|
HierarchicalConfiguration.Node |
getRoot()
Returns the root node of this hierarchical configuration.
|
ConfigurationNode |
getRootNode()
Returns the configuration root node of this combined configuration.
|
short |
getShort(String key)
Get a short associated with the given configuration key.
|
short |
getShort(String key,
short defaultValue)
Get a short associated with the given configuration key.
|
Short |
getShort(String key,
Short defaultValue)
Get a
Short associated with the given configuration key. |
Configuration |
getSource(String key)
Returns the configuration source, in which the specified key is defined.
|
String |
getString(String key)
Get a string associated with the given configuration key.
|
String |
getString(String key,
String defaultValue)
Get a string associated with the given configuration key.
|
String[] |
getStringArray(String key)
Get an array of strings associated with the given configuration key.
|
Configuration |
interpolatedConfiguration()
Returns a configuration with the same content as this configuration, but
with all variables replaced by their actual values.
|
void |
invalidate()
Invalidates the current combined configuration.
|
void |
invalidateAll() |
boolean |
isEmpty()
Checks if this configuration is empty.
|
boolean |
removeConfiguration(Configuration config)
Removes the specified configuration from this combined configuration.
|
Configuration |
removeConfiguration(String name)
Removes the configuration with the specified name.
|
Configuration |
removeConfigurationAt(int index)
Removes the configuration at the specified index.
|
boolean |
removeConfigurationListener(ConfigurationListener l)
Removes the specified event listener so that it does not receive any
further events caused by this object.
|
boolean |
removeErrorListener(ConfigurationErrorListener l)
Removes the specified error listener so that it does not receive any
further events caused by this object.
|
protected Object |
resolveContainerStore(String key)
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 |
setRoot(HierarchicalConfiguration.Node node)
Sets the root node of this hierarchical configuration.
|
void |
setRootNode(ConfigurationNode rootNode)
Sets the root node of this hierarchical configuration.
|
Configuration |
subset(String prefix)
Creates a new
Configuration object containing all keys
that start with the specified prefix. |
addConfiguration, addConfiguration, configurationChanged, fetchNodeList, getConfigurationNameList, getConfigurations, getConversionExpressionEngine, isForceReloadCheck, isIgnoreReloadExceptions, performReloadCheck, setConversionExpressionEngine, setForceReloadCheck, setIgnoreReloadExceptions
getReloadLock
addPropertyDirect, clearNode, clearNode, clearReferences, createAddPath, createNode, createSubnodeConfiguration, createSubnodeConfiguration, fetchAddNode, findLastPathNode, findPropertyNodes, getDefaultExpressionEngine, nodeDefined, nodeDefined, removeNode, removeNode, setDefaultExpressionEngine, subnodeConfigurationChanged
addErrorLogListener, append, clearPropertyDirect, copy, createInterpolator, getDefaultListDelimiter, getDelimiter, getInterpolator, getListDelimiter, getLogger, getProperties, getSubstitutor, interpolate, interpolate, interpolateHelper, isDelimiterParsingDisabled, isScalarValue, isThrowExceptionOnMissing, setDefaultListDelimiter, setDelimiter, setDelimiterParsingDisabled, setListDelimiter, setLogger, setThrowExceptionOnMissing
createErrorEvent, createEvent, fireError, fireEvent, isDetailEvents, setDetailEvents
public DynamicCombinedConfiguration(NodeCombiner comb)
DynamicCombinedConfiguration
and
initializes the combiner to be used.comb
- the node combiner (can be null, then a union combiner
is used as default)public DynamicCombinedConfiguration()
DynamicCombinedConfiguration
that uses
a union combiner.UnionCombiner
public void setKeyPattern(String pattern)
public String getKeyPattern()
public void setLoggerName(String name)
name
- The Logger name.public NodeCombiner getNodeCombiner()
getNodeCombiner
in class CombinedConfiguration
public void setNodeCombiner(NodeCombiner nodeCombiner)
IllegalArgumentException
exception is thrown. Changing the
node combiner causes an invalidation of this combined configuration, so
that the new combiner immediately takes effect.setNodeCombiner
in class CombinedConfiguration
nodeCombiner
- the node combinerpublic void addConfiguration(AbstractConfiguration config, String name, String at)
ConfigurationRuntimeException
will
be thrown. With the optional at
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.addConfiguration
in class CombinedConfiguration
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)public int getNumberOfConfigurations()
getNumberOfConfigurations
in class CombinedConfiguration
public Configuration getConfiguration(int index)
getConfiguration
in class CombinedConfiguration
index
- the indexpublic Configuration getConfiguration(String name)
getConfiguration
in class CombinedConfiguration
name
- the name of the configurationpublic Set<String> getConfigurationNames()
getConfigurationNames
in class CombinedConfiguration
public Configuration removeConfiguration(String name)
removeConfiguration
in class CombinedConfiguration
name
- the name of the configuration to be removedpublic boolean removeConfiguration(Configuration config)
removeConfiguration
in class CombinedConfiguration
config
- the configuration to be removedpublic Configuration removeConfigurationAt(int index)
removeConfigurationAt
in class CombinedConfiguration
index
- the indexpublic ConfigurationNode getRootNode()
getRootNode
in class CombinedConfiguration
public void setRootNode(ConfigurationNode rootNode)
HierarchicalConfiguration
setRootNode
in class HierarchicalConfiguration
rootNode
- the root nodepublic void addProperty(String key, Object value)
Configuration
resource.loader = fileis already present in the configuration and you call
addProperty("resource.loader", "classpath")Then you will end up with a List like the following:
["file", "classpath"]
addProperty
in interface Configuration
addProperty
in class AbstractConfiguration
key
- The key to add the property to.value
- The value to add.public void clear()
CombinedConfiguration
clear
in interface Configuration
clear
in class CombinedConfiguration
public void clearProperty(String key)
HierarchicalConfiguration
clearProperty
in interface Configuration
clearProperty
in class HierarchicalConfiguration
key
- the key of the property to be removedpublic boolean containsKey(String key)
HierarchicalConfiguration
containsKey
in interface Configuration
containsKey
in class HierarchicalConfiguration
key
- the key to be chekcedpublic BigDecimal getBigDecimal(String key, BigDecimal defaultValue)
Configuration
BigDecimal
associated with the given configuration key.
If the key doesn't map to an existing object, the default value
is returned.getBigDecimal
in interface Configuration
getBigDecimal
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public BigDecimal getBigDecimal(String key)
AbstractConfiguration
BigDecimal
associated with the given configuration key.getBigDecimal
in interface Configuration
getBigDecimal
in class AbstractConfiguration
key
- The configuration key.AbstractConfiguration.setThrowExceptionOnMissing(boolean)
public BigInteger getBigInteger(String key, BigInteger defaultValue)
Configuration
BigInteger
associated with the given configuration key.
If the key doesn't map to an existing object, the default value
is returned.getBigInteger
in interface Configuration
getBigInteger
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public BigInteger getBigInteger(String key)
AbstractConfiguration
BigInteger
associated with the given configuration key.getBigInteger
in interface Configuration
getBigInteger
in class AbstractConfiguration
key
- The configuration key.AbstractConfiguration.setThrowExceptionOnMissing(boolean)
public boolean getBoolean(String key, boolean defaultValue)
AbstractConfiguration
getBoolean
in interface Configuration
getBoolean
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.PropertyConverter.toBoolean(Object)
public Boolean getBoolean(String key, Boolean defaultValue)
AbstractConfiguration
Boolean
object. If the property has no value, the passed
in default value will be used.getBoolean
in interface Configuration
getBoolean
in class AbstractConfiguration
key
- the key of the propertydefaultValue
- the default valueBoolean
PropertyConverter.toBoolean(Object)
public boolean getBoolean(String key)
AbstractConfiguration
getBoolean
in interface Configuration
getBoolean
in class AbstractConfiguration
key
- The configuration key.PropertyConverter.toBoolean(Object)
public byte getByte(String key, byte defaultValue)
Configuration
getByte
in interface Configuration
getByte
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public Byte getByte(String key, Byte defaultValue)
Configuration
Byte
associated with the given configuration key.getByte
in interface Configuration
getByte
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public byte getByte(String key)
Configuration
getByte
in interface Configuration
getByte
in class AbstractConfiguration
key
- The configuration key.public double getDouble(String key, double defaultValue)
Configuration
getDouble
in interface Configuration
getDouble
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public Double getDouble(String key, Double defaultValue)
Configuration
Double
associated with the given configuration key.getDouble
in interface Configuration
getDouble
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public double getDouble(String key)
Configuration
getDouble
in interface Configuration
getDouble
in class AbstractConfiguration
key
- The configuration key.public float getFloat(String key, float defaultValue)
Configuration
getFloat
in interface Configuration
getFloat
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public Float getFloat(String key, Float defaultValue)
Configuration
Float
associated with the given configuration key.
If the key doesn't map to an existing object, the default value
is returned.getFloat
in interface Configuration
getFloat
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public float getFloat(String key)
Configuration
getFloat
in interface Configuration
getFloat
in class AbstractConfiguration
key
- The configuration key.public int getInt(String key, int defaultValue)
Configuration
getInt
in interface Configuration
getInt
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public int getInt(String key)
Configuration
getInt
in interface Configuration
getInt
in class AbstractConfiguration
key
- The configuration key.public Integer getInteger(String key, Integer defaultValue)
Configuration
Integer
associated with the given configuration key.
If the key doesn't map to an existing object, the default value
is returned.getInteger
in interface Configuration
getInteger
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public Iterator<String> getKeys()
HierarchicalConfiguration
getKeys
in interface Configuration
getKeys
in class HierarchicalConfiguration
public Iterator<String> getKeys(String prefix)
HierarchicalConfiguration
getKeys
in interface Configuration
getKeys
in class HierarchicalConfiguration
prefix
- the prefix of the keys to start withConfiguration.getKeys()
public List<Object> getList(String key, List<?> defaultValue)
Configuration
getList
in interface Configuration
getList
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public List<Object> getList(String key)
AbstractConfiguration
getList
in interface Configuration
getList
in class AbstractConfiguration
key
- The configuration key.AbstractConfiguration.getStringArray(String)
public long getLong(String key, long defaultValue)
Configuration
getLong
in interface Configuration
getLong
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public Long getLong(String key, Long defaultValue)
Configuration
Long
associated with the given configuration key.
If the key doesn't map to an existing object, the default value
is returned.getLong
in interface Configuration
getLong
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public long getLong(String key)
Configuration
getLong
in interface Configuration
getLong
in class AbstractConfiguration
key
- The configuration key.public Properties getProperties(String key)
Configuration
Properties
object, the value parts
become values.getProperties
in interface Configuration
getProperties
in class AbstractConfiguration
key
- The configuration key.public Object getProperty(String key)
HierarchicalConfiguration
getProperty
in interface Configuration
getProperty
in class HierarchicalConfiguration
key
- the key to be looked uppublic short getShort(String key, short defaultValue)
Configuration
getShort
in interface Configuration
getShort
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public Short getShort(String key, Short defaultValue)
Configuration
Short
associated with the given configuration key.
If the key doesn't map to an existing object, the default value
is returned.getShort
in interface Configuration
getShort
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public short getShort(String key)
Configuration
getShort
in interface Configuration
getShort
in class AbstractConfiguration
key
- The configuration key.public String getString(String key, String defaultValue)
Configuration
getString
in interface Configuration
getString
in class AbstractConfiguration
key
- The configuration key.defaultValue
- The default value.public String getString(String key)
AbstractConfiguration
getString
in interface Configuration
getString
in class AbstractConfiguration
key
- The configuration key.AbstractConfiguration.setThrowExceptionOnMissing(boolean)
public String[] getStringArray(String key)
AbstractConfiguration
setListDelimiter()
method. If this is the case, the string
is split at these positions resulting in a property with multiple
values.getStringArray
in interface Configuration
getStringArray
in class AbstractConfiguration
key
- The configuration key.AbstractConfiguration.setListDelimiter(char)
,
AbstractConfiguration.setDelimiterParsingDisabled(boolean)
public boolean isEmpty()
HierarchicalConfiguration
isEmpty
in interface Configuration
isEmpty
in class HierarchicalConfiguration
public void setProperty(String key, Object value)
HierarchicalConfiguration
setProperty
in interface Configuration
setProperty
in class HierarchicalConfiguration
key
- the key of the property to setvalue
- the new value of this propertypublic Configuration subset(String prefix)
HierarchicalConfiguration
Configuration
object containing all keys
that start with the specified prefix. This implementation will return a
HierarchicalConfiguration
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 returned
Configuration
object is not connected to its source
configuration: updates on the source configuration are not reflected in
the subset and vice versa.subset
in interface Configuration
subset
in class HierarchicalConfiguration
prefix
- the prefix of the keys for the subsetSubsetConfiguration
public HierarchicalConfiguration.Node getRoot()
HierarchicalConfiguration
HierarchicalConfiguration.getRootNode()
method instead, which operates on
the preferred data type ConfigurationNode
.getRoot
in class HierarchicalConfiguration
public void setRoot(HierarchicalConfiguration.Node node)
HierarchicalConfiguration
HierarchicalConfiguration.setRootNode(ConfigurationNode)
method instead,
which operates on the preferred data type ConfigurationNode
.setRoot
in class HierarchicalConfiguration
node
- the root nodepublic ExpressionEngine getExpressionEngine()
HierarchicalConfiguration
getExpressionEngine
in class HierarchicalConfiguration
public void setExpressionEngine(ExpressionEngine expressionEngine)
HierarchicalConfiguration
setExpressionEngine
in class HierarchicalConfiguration
expressionEngine
- the new expression engine; can be null,
then the default expression engine will be usedpublic void addNodes(String key, Collection<? extends ConfigurationNode> nodes)
HierarchicalConfiguration
addProperty()
, 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 another HierarchicalConfiguration
object to this object. (However be aware that a
ConfigurationNode
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 calling addNodes()
.) 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.addNodes
in class HierarchicalConfiguration
key
- the key where the nodes are to be added; can be null ,
then they are added to the root nodenodes
- a collection with the Node
objects to be
addedpublic SubnodeConfiguration configurationAt(String key, boolean supportUpdates)
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 that
subset()
supports arbitrary subsets of configuration nodes
while configurationAt()
only returns a single sub tree.
Please refer to the documentation of the
SubnodeConfiguration
class to obtain further information
about subnode configurations and when they should be used.
With the supportUpdate
flag the behavior of the returned
SubnodeConfiguration
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, the supportUpdates
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.
configurationAt
in class HierarchicalConfiguration
key
- the key that selects the sub treesupportUpdates
- a flag whether the returned subnode configuration
should be able to handle updates of its parentSubnodeConfiguration
public SubnodeConfiguration configurationAt(String key)
HierarchicalConfiguration
configurationAt(key,
<b>false</b>)
.configurationAt
in class HierarchicalConfiguration
key
- the key that selects the sub treeSubnodeConfiguration
public List<HierarchicalConfiguration> configurationsAt(String key)
HierarchicalConfiguration
ExpressionEngine
) and then create a subnode
configuration for each returned node (like
HierarchicalConfiguration.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 do
List 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"); ...
configurationsAt
in class HierarchicalConfiguration
key
- the key for selecting the desired nodespublic void clearTree(String key)
HierarchicalConfiguration
clearTree("foo")
would remove both properties.clearTree
in class HierarchicalConfiguration
key
- the key of the property to be removedpublic int getMaxIndex(String key)
HierarchicalConfiguration
getMaxIndex
in class HierarchicalConfiguration
key
- the key to be checkedpublic Configuration interpolatedConfiguration()
HierarchicalConfiguration
interpolatedConfiguration
in class HierarchicalConfiguration
public Configuration getSource(String key)
IllegalArgumentException
is
thrown (in this case no unique source can be determined).getSource
in class CombinedConfiguration
key
- the key of a configuration propertyIllegalArgumentException
- if the key maps to multiple properties
and the source cannot be determined, or if the key is nullpublic void addConfigurationListener(ConfigurationListener l)
EventSource
addConfigurationListener
in class EventSource
l
- the listener to addpublic boolean removeConfigurationListener(ConfigurationListener l)
EventSource
removeConfigurationListener
in class EventSource
l
- the listener to be removedpublic Collection<ConfigurationListener> getConfigurationListeners()
EventSource
getConfigurationListeners
in class EventSource
ConfigurationListener
s (this collection is a snapshot
of the currently registered listeners; manipulating it has no effect
on this event source object)public void clearConfigurationListeners()
EventSource
clearConfigurationListeners
in class EventSource
public void addErrorListener(ConfigurationErrorListener l)
EventSource
addErrorListener
in class EventSource
l
- the listener to register (must not be null)public boolean removeErrorListener(ConfigurationErrorListener l)
EventSource
removeErrorListener
in class EventSource
l
- the listener to removepublic void clearErrorListeners()
EventSource
clearErrorListeners
in class EventSource
public Collection<ConfigurationErrorListener> getErrorListeners()
EventSource
getErrorListeners
in class EventSource
ConfigurationErrorListener
s (this collection is a
snapshot of the currently registered listeners; it cannot be manipulated)public Object clone()
clone
in class CombinedConfiguration
public void invalidate()
EVENT_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).invalidate
in class CombinedConfiguration
public void invalidateAll()
protected Object resolveContainerStore(String key)
AbstractConfiguration
resolveContainerStore
in class AbstractConfiguration
key
- The property key.Copyright © 2001–2013 The Apache Software Foundation. All rights reserved.