Class DefaultConfiguration
- java.lang.Object
-
- org.apache.avalon.framework.configuration.AbstractConfiguration
-
- org.apache.avalon.framework.configuration.DefaultConfiguration
-
- All Implemented Interfaces:
java.io.Serializable
,Configuration
,MutableConfiguration
public class DefaultConfiguration extends AbstractConfiguration implements MutableConfiguration, java.io.Serializable
This is the defaultConfiguration
implementation.- Version:
- $Id: DefaultConfiguration.java 160878 2005-04-11 08:59:59 -0500 (Mon, 11 Apr 2005) leif $
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected static Configuration[]
EMPTY_ARRAY
An empty (length zero) array of configuration objects.private java.util.HashMap
m_attributes
private java.util.ArrayList
m_children
private java.lang.String
m_location
private java.lang.String
m_name
private java.lang.String
m_namespace
private java.lang.String
m_prefix
private boolean
m_readOnly
private java.lang.String
m_value
-
Constructor Summary
Constructors Constructor Description DefaultConfiguration(java.lang.String name)
Create a newDefaultConfiguration
instance.DefaultConfiguration(java.lang.String name, java.lang.String location)
Create a newDefaultConfiguration
instance.DefaultConfiguration(java.lang.String name, java.lang.String location, java.lang.String ns, java.lang.String prefix)
Create a newDefaultConfiguration
instance.DefaultConfiguration(Configuration config)
Shallow copy constructor, suitable for craeting a writable clone of a read-only configuration.DefaultConfiguration(Configuration config, boolean deepCopy)
Copy constructor, to create a clone of another configuration.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addAll(Configuration other)
Add all the attributes, children and value from specified configuration element to current configuration element.void
addAll(Configuration other, boolean deepCopy)
Add all the attributes, children and value from specified configuration element to current configuration element.void
addAllAttributes(Configuration other)
Add all attributes from specified configuration element to current configuration element.void
addAllChildren(Configuration other)
Add all childConfiguration
objects from specified configuration element to current configuration element.void
addAllChildren(Configuration other, boolean deepCopy)
Add all childConfiguration
objects from specified configuration element to current configuration element.java.lang.String
addAttribute(java.lang.String name, java.lang.String value)
Deprecated.Use setAttribute() insteadvoid
addChild(Configuration configuration)
Add a childConfiguration
to this configuration element.void
appendValueData(java.lang.String value)
Deprecated.Use setValue() insteadprivate boolean
check(java.lang.Object one, java.lang.Object two)
protected void
checkWriteable()
heck if this configuration is writeable.boolean
equals(java.lang.Object other)
Compare if this configuration is equal to another.java.lang.String
getAttribute(java.lang.String name)
Returns the value of the attribute specified by its name as aString
.java.lang.String[]
getAttributeNames()
Return an array of all attribute names.Configuration
getChild(java.lang.String name, boolean createNew)
Return the firstConfiguration
object child of this associated with the given name.int
getChildCount()
Return count of children.Configuration[]
getChildren()
Return an array ofConfiguration
elements containing all node children.Configuration[]
getChildren(java.lang.String name)
Return an array ofConfiguration
objects children of this associated with the given name.java.lang.String
getLocation()
Returns a description of location of element.MutableConfiguration
getMutableChild(java.lang.String name)
Equivalent togetMutableChild( name, true )
MutableConfiguration
getMutableChild(java.lang.String name, boolean autoCreate)
Gets a child node of this configuration.MutableConfiguration[]
getMutableChildren()
Returns an array of mutable children.MutableConfiguration[]
getMutableChildren(java.lang.String name)
Returns an array of mutable children with the given name.java.lang.String
getName()
Returns the name of this configuration element.java.lang.String
getNamespace()
Returns the namespace of this configuration elementprotected java.lang.String
getPrefix()
Returns the prefix of the namespacejava.lang.String
getValue()
Returns the value of the configuration element as aString
.java.lang.String
getValue(java.lang.String defaultValue)
Returns the value of the configuration element as aString
.int
hashCode()
Obtaine the hashcode for this configuration.protected boolean
isReadOnly()
Returns true iff this DefaultConfiguration has been made read-only.void
makeReadOnly()
Make this configuration read-only.void
removeChild(Configuration configuration)
Remove a childConfiguration
to this configuration element.void
setAttribute(java.lang.String name, boolean value)
Set the value of the specified attribute to the specified boolean.void
setAttribute(java.lang.String name, double value)
Set the value of the specified attribute to the specified double.void
setAttribute(java.lang.String name, float value)
Set the value of the specified attribute to the specified float.void
setAttribute(java.lang.String name, int value)
Set the value of the specified attribute to the specified int.void
setAttribute(java.lang.String name, long value)
Set the value of the specified attribute to the specified long.void
setAttribute(java.lang.String name, java.lang.String value)
Set the value of the specified attribute to the specified string.void
setValue(boolean value)
Set the value of thisConfiguration
object to the specified boolean.void
setValue(double value)
Set the value of thisConfiguration
object to the specified double.void
setValue(float value)
Set the value of thisConfiguration
object to the specified float.void
setValue(int value)
Set the value of thisConfiguration
object to the specified int.void
setValue(long value)
Set the value of thisConfiguration
object to the specified long.void
setValue(java.lang.String value)
Set the value of thisConfiguration
object to the specified string.private MutableConfiguration
toMutable(Configuration child)
Convenience function to convert a child to a mutable configuration.-
Methods inherited from class org.apache.avalon.framework.configuration.AbstractConfiguration
getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDouble, getAttributeAsDouble, getAttributeAsFloat, getAttributeAsFloat, getAttributeAsInteger, getAttributeAsInteger, getAttributeAsLong, getAttributeAsLong, getChild, getValueAsBoolean, getValueAsBoolean, getValueAsDouble, getValueAsDouble, getValueAsFloat, getValueAsFloat, getValueAsInteger, getValueAsInteger, getValueAsLong, getValueAsLong, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.avalon.framework.configuration.Configuration
getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDouble, getAttributeAsDouble, getAttributeAsFloat, getAttributeAsFloat, getAttributeAsInteger, getAttributeAsInteger, getAttributeAsLong, getAttributeAsLong, getChild, getValueAsBoolean, getValueAsBoolean, getValueAsDouble, getValueAsDouble, getValueAsFloat, getValueAsFloat, getValueAsInteger, getValueAsInteger, getValueAsLong, getValueAsLong
-
-
-
-
Field Detail
-
EMPTY_ARRAY
protected static final Configuration[] EMPTY_ARRAY
An empty (length zero) array of configuration objects.
-
m_name
private final java.lang.String m_name
-
m_location
private final java.lang.String m_location
-
m_namespace
private final java.lang.String m_namespace
-
m_prefix
private final java.lang.String m_prefix
-
m_attributes
private java.util.HashMap m_attributes
-
m_children
private java.util.ArrayList m_children
-
m_value
private java.lang.String m_value
-
m_readOnly
private boolean m_readOnly
-
-
Constructor Detail
-
DefaultConfiguration
public DefaultConfiguration(Configuration config, boolean deepCopy) throws ConfigurationException
Copy constructor, to create a clone of another configuration. To modify children, usegetChild()
,removeChild()
andaddChild()
.- Parameters:
config
- theConfiguration
to copydeepCopy
- true will cause clones of the children to be added, false will add the original instances and is thus faster.- Throws:
ConfigurationException
- if an error occurs when copying
-
DefaultConfiguration
public DefaultConfiguration(Configuration config) throws ConfigurationException
Shallow copy constructor, suitable for craeting a writable clone of a read-only configuration. To modify children, usegetChild()
,removeChild()
andaddChild()
.- Parameters:
config
- theConfiguration
to copy- Throws:
ConfigurationException
- if an error occurs when copying
-
DefaultConfiguration
public DefaultConfiguration(java.lang.String name)
Create a newDefaultConfiguration
instance.- Parameters:
name
- aString
value
-
DefaultConfiguration
public DefaultConfiguration(java.lang.String name, java.lang.String location)
Create a newDefaultConfiguration
instance.- Parameters:
name
- aString
valuelocation
- aString
value
-
DefaultConfiguration
public DefaultConfiguration(java.lang.String name, java.lang.String location, java.lang.String ns, java.lang.String prefix)
Create a newDefaultConfiguration
instance.- Parameters:
name
- config node namelocation
- Builder-specific locator stringns
- Namespace string (typically a URI). Should not be null; use "" if no namespace.prefix
- A short string prefixed to element names, associating elements with a longer namespace string. Should not be null; use "" if no namespace.- Since:
- 4.1
-
-
Method Detail
-
getName
public java.lang.String getName()
Returns the name of this configuration element.- Specified by:
getName
in interfaceConfiguration
- Returns:
- a
String
value
-
getNamespace
public java.lang.String getNamespace() throws ConfigurationException
Returns the namespace of this configuration element- Specified by:
getNamespace
in interfaceConfiguration
- Returns:
- a
String
value - Throws:
ConfigurationException
- if an error occurs- Since:
- 4.1
-
getPrefix
protected java.lang.String getPrefix() throws ConfigurationException
Returns the prefix of the namespace- Specified by:
getPrefix
in classAbstractConfiguration
- Returns:
- a
String
value - Throws:
ConfigurationException
- if prefix is not present (null
).- Since:
- 4.1
-
getLocation
public java.lang.String getLocation()
Returns a description of location of element.- Specified by:
getLocation
in interfaceConfiguration
- Returns:
- a
String
value
-
getValue
public java.lang.String getValue(java.lang.String defaultValue)
Returns the value of the configuration element as aString
.- Specified by:
getValue
in interfaceConfiguration
- Overrides:
getValue
in classAbstractConfiguration
- Parameters:
defaultValue
- the default value to return if value malformed or empty- Returns:
- a
String
value
-
getValue
public java.lang.String getValue() throws ConfigurationException
Returns the value of the configuration element as aString
.- Specified by:
getValue
in interfaceConfiguration
- Returns:
- a
String
value - Throws:
ConfigurationException
- If the value is not present.
-
getAttributeNames
public java.lang.String[] getAttributeNames()
Return an array of all attribute names.- Specified by:
getAttributeNames
in interfaceConfiguration
- Returns:
- a
String[]
value
-
getChildren
public Configuration[] getChildren()
Return an array ofConfiguration
elements containing all node children.- Specified by:
getChildren
in interfaceConfiguration
- Returns:
- The child nodes with name
-
getAttribute
public java.lang.String getAttribute(java.lang.String name) throws ConfigurationException
Returns the value of the attribute specified by its name as aString
.- Specified by:
getAttribute
in interfaceConfiguration
- Parameters:
name
- aString
value- Returns:
- a
String
value - Throws:
ConfigurationException
- If the attribute is not present.
-
getChild
public Configuration getChild(java.lang.String name, boolean createNew)
Return the firstConfiguration
object child of this associated with the given name.- Specified by:
getChild
in interfaceConfiguration
- Overrides:
getChild
in classAbstractConfiguration
- Parameters:
name
- aString
valuecreateNew
- aboolean
value- Returns:
- a
Configuration
value
-
getChildren
public Configuration[] getChildren(java.lang.String name)
Return an array ofConfiguration
objects children of this associated with the given name.
The returned array may be empty but is nevernull
.- Specified by:
getChildren
in interfaceConfiguration
- Parameters:
name
- The name of the required childrenConfiguration
.- Returns:
- a
Configuration[]
value
-
appendValueData
public void appendValueData(java.lang.String value)
Deprecated.Use setValue() insteadAppend data to the value of this configuration element.- Parameters:
value
- aString
value
-
setValue
public void setValue(java.lang.String value)
Set the value of thisConfiguration
object to the specified string.- Specified by:
setValue
in interfaceMutableConfiguration
- Parameters:
value
- aString
value
-
setValue
public void setValue(int value)
Set the value of thisConfiguration
object to the specified int.- Specified by:
setValue
in interfaceMutableConfiguration
- Parameters:
value
- aint
value
-
setValue
public void setValue(long value)
Set the value of thisConfiguration
object to the specified long.- Specified by:
setValue
in interfaceMutableConfiguration
- Parameters:
value
- along
value
-
setValue
public void setValue(boolean value)
Set the value of thisConfiguration
object to the specified boolean.- Specified by:
setValue
in interfaceMutableConfiguration
- Parameters:
value
- aboolean
value
-
setValue
public void setValue(float value)
Set the value of thisConfiguration
object to the specified float.- Specified by:
setValue
in interfaceMutableConfiguration
- Parameters:
value
- afloat
value
-
setValue
public void setValue(double value)
Set the value of thisConfiguration
object to the specified double.- Specified by:
setValue
in interfaceMutableConfiguration
- Parameters:
value
- adouble
value
-
setAttribute
public void setAttribute(java.lang.String name, java.lang.String value)
Set the value of the specified attribute to the specified string.- Specified by:
setAttribute
in interfaceMutableConfiguration
- Parameters:
name
- name of the attribute to setvalue
- aString
value
-
setAttribute
public void setAttribute(java.lang.String name, int value)
Set the value of the specified attribute to the specified int.- Specified by:
setAttribute
in interfaceMutableConfiguration
- Parameters:
name
- name of the attribute to setvalue
- anint
value
-
setAttribute
public void setAttribute(java.lang.String name, long value)
Set the value of the specified attribute to the specified long.- Specified by:
setAttribute
in interfaceMutableConfiguration
- Parameters:
name
- name of the attribute to setvalue
- anlong
value
-
setAttribute
public void setAttribute(java.lang.String name, boolean value)
Set the value of the specified attribute to the specified boolean.- Specified by:
setAttribute
in interfaceMutableConfiguration
- Parameters:
name
- name of the attribute to setvalue
- anboolean
value
-
setAttribute
public void setAttribute(java.lang.String name, float value)
Set the value of the specified attribute to the specified float.- Specified by:
setAttribute
in interfaceMutableConfiguration
- Parameters:
name
- name of the attribute to setvalue
- anfloat
value
-
setAttribute
public void setAttribute(java.lang.String name, double value)
Set the value of the specified attribute to the specified double.- Specified by:
setAttribute
in interfaceMutableConfiguration
- Parameters:
name
- name of the attribute to setvalue
- andouble
value
-
addAttribute
public java.lang.String addAttribute(java.lang.String name, java.lang.String value)
Deprecated.Use setAttribute() insteadAdd an attribute to this configuration element, returning its old value or null.- Parameters:
name
- aString
valuevalue
- aString
value- Returns:
- a
String
value
-
addChild
public void addChild(Configuration configuration)
Add a childConfiguration
to this configuration element.- Specified by:
addChild
in interfaceMutableConfiguration
- Parameters:
configuration
- aConfiguration
value
-
addAll
public void addAll(Configuration other, boolean deepCopy) throws ConfigurationException
Add all the attributes, children and value from specified configuration element to current configuration element.- Parameters:
other
- theConfiguration
elementdeepCopy
- true will cause clones of the children to be added, false will add the original instances and is thus faster. throws ConfigurationException If there are any problems cloning the children.- Throws:
ConfigurationException
-
addAll
public void addAll(Configuration other)
Add all the attributes, children and value from specified configuration element to current configuration element.- Specified by:
addAll
in interfaceMutableConfiguration
- Parameters:
other
- theConfiguration
element
-
addAllAttributes
public void addAllAttributes(Configuration other)
Add all attributes from specified configuration element to current configuration element.- Specified by:
addAllAttributes
in interfaceMutableConfiguration
- Parameters:
other
- theConfiguration
element
-
addAllChildren
public void addAllChildren(Configuration other, boolean deepCopy) throws ConfigurationException
Add all childConfiguration
objects from specified configuration element to current configuration element.- Parameters:
deepCopy
- true will cause clones of the children to be added, false will add the original instances and is thus faster.other
- the otherConfiguration
value throws ConfigurationException If there are any problems cloning the children.- Throws:
ConfigurationException
-
addAllChildren
public void addAllChildren(Configuration other)
Add all childConfiguration
objects from specified configuration element to current configuration element.- Specified by:
addAllChildren
in interfaceMutableConfiguration
- Parameters:
other
- the otherConfiguration
value
-
removeChild
public void removeChild(Configuration configuration)
Remove a childConfiguration
to this configuration element.- Specified by:
removeChild
in interfaceMutableConfiguration
- Parameters:
configuration
- aConfiguration
value
-
getChildCount
public int getChildCount()
Return count of children.- Returns:
- an
int
value
-
makeReadOnly
public void makeReadOnly()
Make this configuration read-only.
-
checkWriteable
protected final void checkWriteable() throws java.lang.IllegalStateException
heck if this configuration is writeable.- Throws:
java.lang.IllegalStateException
- if this configuration s read-only
-
isReadOnly
protected final boolean isReadOnly()
Returns true iff this DefaultConfiguration has been made read-only.
-
toMutable
private MutableConfiguration toMutable(Configuration child) throws ConfigurationException
Convenience function to convert a child to a mutable configuration. If the child is-a MutableConfiguration, and it isn't a read-only DefaultConfiguration (which isn't really mutable), the child is cast to MutableConfiguration and returned. If not, the child is replaced in the m_children array with a new writable DefaultConfiguration that is a shallow copy of the child, and the new child is returned.- Throws:
ConfigurationException
-
getMutableChild
public MutableConfiguration getMutableChild(java.lang.String name) throws ConfigurationException
Description copied from interface:MutableConfiguration
Equivalent togetMutableChild( name, true )
- Specified by:
getMutableChild
in interfaceMutableConfiguration
- Throws:
ConfigurationException
-
getMutableChild
public MutableConfiguration getMutableChild(java.lang.String name, boolean autoCreate) throws ConfigurationException
Description copied from interface:MutableConfiguration
Gets a child node of this configuration. If a mutable child with the given name exists, it is returned. If an immutable child with the given name exists, it is converted into a mutable child and returned. In this case, the immutable child will be replaced with the mutable child in this configuration (that is, it will be as if the child node always had been mutable). If no child with the given name exists, andautoCreate
istrue
, a new mutable child is created and added to this configuration before being returned.- Specified by:
getMutableChild
in interfaceMutableConfiguration
- Parameters:
name
- the name of the child.autoCreate
- set to true to create the child node if it doesn't exist.- Returns:
- the child MutableConfiguration, or
null
ifautoCreate
was false and no child by the given name existed. - Throws:
ConfigurationException
- if an error occurrs.
-
getMutableChildren
public MutableConfiguration[] getMutableChildren() throws ConfigurationException
Description copied from interface:MutableConfiguration
Returns an array of mutable children. Immutable children are converted just as forgetMutableChild
.- Specified by:
getMutableChildren
in interfaceMutableConfiguration
- Throws:
ConfigurationException
- if an error occurrs.
-
getMutableChildren
public MutableConfiguration[] getMutableChildren(java.lang.String name) throws ConfigurationException
Description copied from interface:MutableConfiguration
Returns an array of mutable children with the given name. Immutable children are converted just as forgetMutableChild
.- Specified by:
getMutableChildren
in interfaceMutableConfiguration
- Throws:
ConfigurationException
- if an error occurrs.
-
equals
public boolean equals(java.lang.Object other)
Compare if this configuration is equal to another.- Overrides:
equals
in classjava.lang.Object
- Parameters:
other
- The other configuration- Returns:
true
if they are the same.
-
check
private boolean check(java.lang.Object one, java.lang.Object two)
-
hashCode
public int hashCode()
Obtaine the hashcode for this configuration.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- the hashcode.
-
-