org.apache.commons.configuration.tree
Class DefaultConfigurationNode

java.lang.Object
  extended by org.apache.commons.configuration.tree.DefaultConfigurationNode
All Implemented Interfaces:
Cloneable, ConfigurationNode
Direct Known Subclasses:
HierarchicalConfiguration.Node, ViewNode

public class DefaultConfigurationNode
extends Object
implements ConfigurationNode, Cloneable

A default implementation of the ConfigurationNode interface.

Since:
1.3
Author:
Oliver Heger

Nested Class Summary
protected static class DefaultConfigurationNode.SubNodes
          An internally used helper class for managing a collection of sub nodes.
 
Constructor Summary
DefaultConfigurationNode()
          Creates a new uninitialized instance of DefaultConfigurationNode.
DefaultConfigurationNode(String name)
          Creates a new instance of DefaultConfigurationNode and initializes it with the node name.
DefaultConfigurationNode(String name, Object value)
          Creates a new instance of DefaultConfigurationNode and initializes it with the name and a value.
 
Method Summary
 void addAttribute(ConfigurationNode attr)
          Adds the specified attribute to this node.
 void addChild(ConfigurationNode child)
          Adds a new child to this node.
protected  void checkState()
          Checks if a modification of this node is allowed.
 Object clone()
          Creates a copy of this object.
protected  DefaultConfigurationNode.SubNodes createSubNodes(boolean attributes)
          Creates a SubNodes instance that is used for storing either this node's children or attributes.
 ConfigurationNode getAttribute(int index)
          Returns the attribute with the given index.
 int getAttributeCount()
          Returns the number of attributes contained in this node.
 int getAttributeCount(String name)
          Returns the number of attributes of this node with the given name.
 List getAttributes()
          Returns a list with the attributes of this node.
 List getAttributes(String name)
          Returns a list with all attributes of this node with the given name.
 ConfigurationNode getChild(int index)
          Returns the child node with the given index.
 List getChildren()
          Returns a list with all children of this node.
 List getChildren(String name)
          Returns a list of all children with the given name.
 int getChildrenCount()
          Returns the number of all children of this node.
 int getChildrenCount(String name)
          Returns the number of children with the given name.
 String getName()
          Returns the name of this node.
 ConfigurationNode getParentNode()
          Returns a reference to this node's parent.
 Object getReference()
          Returns the reference.
 Object getValue()
          Returns the value of this node.
 boolean isAttribute()
          Checks if this node is an attribute node.
 boolean isDefined()
          Returns a flag if this node is defined.
 boolean removeAttribute(ConfigurationNode node)
          Removes the specified attribute.
 boolean removeAttribute(String name)
          Removes all attributes with the specified name.
 void removeAttributes()
          Removes all attributes of this node.
 boolean removeChild(ConfigurationNode child)
          Removes the specified child node from this node.
 boolean removeChild(String childName)
          Removes all children with the given name.
 void removeChildren()
          Removes all child nodes of this node.
protected  void removeReference()
          Deals with the reference when a node is removed.
 void setAttribute(boolean f)
          Sets the attribute flag.
 void setName(String name)
          Sets the name of this node.
 void setParentNode(ConfigurationNode parent)
          Sets the parent of this node.
 void setReference(Object reference)
          Sets the reference.
 void setValue(Object val)
          Sets the value of this node.
 void visit(ConfigurationNodeVisitor visitor)
          Visits this node and all its sub nodes.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultConfigurationNode

public DefaultConfigurationNode()
Creates a new uninitialized instance of DefaultConfigurationNode.


DefaultConfigurationNode

public DefaultConfigurationNode(String name)
Creates a new instance of DefaultConfigurationNode and initializes it with the node name.

Parameters:
name - the name of this node

DefaultConfigurationNode

public DefaultConfigurationNode(String name,
                                Object value)
Creates a new instance of DefaultConfigurationNode and initializes it with the name and a value.

Parameters:
name - the node's name
value - the node's value
Method Detail

getName

public String getName()
Returns the name of this node.

Specified by:
getName in interface ConfigurationNode
Returns:
the name of this node

setName

public void setName(String name)
Sets the name of this node.

Specified by:
setName in interface ConfigurationNode
Parameters:
name - the new name

getValue

public Object getValue()
Returns the value of this node.

Specified by:
getValue in interface ConfigurationNode
Returns:
the value of this node

setValue

public void setValue(Object val)
Sets the value of this node.

Specified by:
setValue in interface ConfigurationNode
Parameters:
val - the value of this node

getReference

public Object getReference()
Returns the reference.

Specified by:
getReference in interface ConfigurationNode
Returns:
the reference

setReference

public void setReference(Object reference)
Sets the reference.

Specified by:
setReference in interface ConfigurationNode
Parameters:
reference - the reference object

getParentNode

public ConfigurationNode getParentNode()
Returns a reference to this node's parent.

Specified by:
getParentNode in interface ConfigurationNode
Returns:
the parent node or null if this is the root

setParentNode

public void setParentNode(ConfigurationNode parent)
Sets the parent of this node.

Specified by:
setParentNode in interface ConfigurationNode
Parameters:
parent - the parent of this node

addChild

public void addChild(ConfigurationNode child)
Adds a new child to this node.

Specified by:
addChild in interface ConfigurationNode
Parameters:
child - the new child

getChildren

public List getChildren()
Returns a list with all children of this node.

Specified by:
getChildren in interface ConfigurationNode
Returns:
a list with all child nodes

getChildrenCount

public int getChildrenCount()
Returns the number of all children of this node.

Specified by:
getChildrenCount in interface ConfigurationNode
Returns:
the number of all children

getChildren

public List getChildren(String name)
Returns a list of all children with the given name.

Specified by:
getChildren in interface ConfigurationNode
Parameters:
name - the name; can be null , then all children are returned
Returns:
a list of all children with the given name

getChildrenCount

public int getChildrenCount(String name)
Returns the number of children with the given name.

Specified by:
getChildrenCount in interface ConfigurationNode
Parameters:
name - the name; can be null , then the number of all children is returned
Returns:
the number of child nodes with this name

getChild

public ConfigurationNode getChild(int index)
Returns the child node with the given index.

Specified by:
getChild in interface ConfigurationNode
Parameters:
index - the index (0-based)
Returns:
the child with this index

removeChild

public boolean removeChild(ConfigurationNode child)
Removes the specified child node from this node.

Specified by:
removeChild in interface ConfigurationNode
Parameters:
child - the node to be removed
Returns:
a flag if a node was removed

removeChild

public boolean removeChild(String childName)
Removes all children with the given name.

Specified by:
removeChild in interface ConfigurationNode
Parameters:
childName - the name of the children to be removed
Returns:
a flag if at least one child node was removed

removeChildren

public void removeChildren()
Removes all child nodes of this node.

Specified by:
removeChildren in interface ConfigurationNode

isAttribute

public boolean isAttribute()
Checks if this node is an attribute node.

Specified by:
isAttribute in interface ConfigurationNode
Returns:
a flag if this is an attribute node

setAttribute

public void setAttribute(boolean f)
Sets the attribute flag. Note: this method can only be called if the node is not already part of a node hierarchy.

Specified by:
setAttribute in interface ConfigurationNode
Parameters:
f - the attribute flag

addAttribute

public void addAttribute(ConfigurationNode attr)
Adds the specified attribute to this node.

Specified by:
addAttribute in interface ConfigurationNode
Parameters:
attr - the attribute to be added

getAttributes

public List getAttributes()
Returns a list with the attributes of this node. This list contains ConfigurationNode objects, too.

Specified by:
getAttributes in interface ConfigurationNode
Returns:
the attribute list, never null

getAttributeCount

public int getAttributeCount()
Returns the number of attributes contained in this node.

Specified by:
getAttributeCount in interface ConfigurationNode
Returns:
the number of attributes

getAttributes

public List getAttributes(String name)
Returns a list with all attributes of this node with the given name.

Specified by:
getAttributes in interface ConfigurationNode
Parameters:
name - the attribute's name
Returns:
all attributes with this name

getAttributeCount

public int getAttributeCount(String name)
Returns the number of attributes of this node with the given name.

Specified by:
getAttributeCount in interface ConfigurationNode
Parameters:
name - the name
Returns:
the number of attributes with this name

removeAttribute

public boolean removeAttribute(ConfigurationNode node)
Removes the specified attribute.

Specified by:
removeAttribute in interface ConfigurationNode
Parameters:
node - the attribute node to be removed
Returns:
a flag if the attribute could be removed

removeAttribute

public boolean removeAttribute(String name)
Removes all attributes with the specified name.

Specified by:
removeAttribute in interface ConfigurationNode
Parameters:
name - the name
Returns:
a flag if at least one attribute was removed

getAttribute

public ConfigurationNode getAttribute(int index)
Returns the attribute with the given index.

Specified by:
getAttribute in interface ConfigurationNode
Parameters:
index - the index (0-based)
Returns:
the attribute with this index

removeAttributes

public void removeAttributes()
Removes all attributes of this node.

Specified by:
removeAttributes in interface ConfigurationNode

isDefined

public boolean isDefined()
Returns a flag if this node is defined. This means that the node contains some data.

Specified by:
isDefined in interface ConfigurationNode
Returns:
a flag whether this node is defined

visit

public void visit(ConfigurationNodeVisitor visitor)
Visits this node and all its sub nodes.

Specified by:
visit in interface ConfigurationNode
Parameters:
visitor - the visitor
See Also:
ConfigurationNodeVisitor

clone

public Object clone()
Creates a copy of this object. This is not a deep copy, the children are not cloned.

Specified by:
clone in interface ConfigurationNode
Overrides:
clone in class Object
Returns:
a copy of this object

checkState

protected void checkState()
Checks if a modification of this node is allowed. Some properties of a node must not be changed when the node has a parent. This method checks this and throws a runtime exception if necessary.


createSubNodes

protected DefaultConfigurationNode.SubNodes createSubNodes(boolean attributes)
Creates a SubNodes instance that is used for storing either this node's children or attributes.

Parameters:
attributes - true if the returned instance is used for storing attributes, false for storing child nodes
Returns:
the SubNodes object to use

removeReference

protected void removeReference()
Deals with the reference when a node is removed. This method is called for each removed child node or attribute. It can be overloaded in sub classes, for which the reference has a concrete meaning and remove operations need some update actions. This default implementation is empty.



Copyright © 2001-2007 The Apache Software Foundation. All Rights Reserved.