org.apache.commons.configuration
Class HierarchicalConfiguration.Node

java.lang.Object
  extended byorg.apache.commons.configuration.HierarchicalConfiguration.Node
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable
Enclosing class:
HierarchicalConfiguration

public static class HierarchicalConfiguration.Node
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable

A data class for storing (hierarchical) property information. A property can have a value and an arbitrary number of child properties.

Author:
Oliver Heger
See Also:
Serialized Form

Field Summary
private  java.util.Map children
          Stores the children of this node.
private  java.lang.String name
          Stores the name of this node.
private  HierarchicalConfiguration.Node parent
          Stores a reference to this node's parent.
private  java.lang.Object value
          Stores the value of this node.
 
Constructor Summary
HierarchicalConfiguration.Node()
          Creates a new instance of Node.
HierarchicalConfiguration.Node(java.lang.String name)
          Creates a new instance of Node and sets the name.
 
Method Summary
 void addChild(HierarchicalConfiguration.Node child)
          Adds the specified child object to this node.
protected  java.lang.Object clone()
          Creates a copy of this object.
 AbstractConfiguration.Container getChildren()
          Returns a list with the child nodes of this node.
 AbstractConfiguration.Container getChildren(java.lang.String name)
          Returns a list with this node's children with the given name.
 java.lang.String getName()
          Returns the name of this node.
 HierarchicalConfiguration.Node getParent()
          Returns the parent of this node.
 java.lang.Object getValue()
          Returns the value of this node.
 boolean remove(HierarchicalConfiguration.Node child)
          Removes the specified child from this node.
 boolean remove(java.lang.String name)
          Removes all children with the given name.
 void removeChildren()
          Removes all children of this node.
 void setName(java.lang.String string)
          Sets the name of this node.
 void setParent(HierarchicalConfiguration.Node node)
          Sets the parent of this node.
 void setValue(java.lang.Object object)
          Sets the value of this node.
 void visit(HierarchicalConfiguration.NodeVisitor visitor, ConfigurationKey key)
          A generic method for traversing this node and all of its children.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parent

private HierarchicalConfiguration.Node parent
Stores a reference to this node's parent.


name

private java.lang.String name
Stores the name of this node.


value

private java.lang.Object value
Stores the value of this node.


children

private java.util.Map children
Stores the children of this node.

Constructor Detail

HierarchicalConfiguration.Node

public HierarchicalConfiguration.Node()
Creates a new instance of Node.


HierarchicalConfiguration.Node

public HierarchicalConfiguration.Node(java.lang.String name)
Creates a new instance of Node and sets the name.

Parameters:
name - the node's name
Method Detail

getName

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

Returns:
the node name

getValue

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

Returns:
the node value (may be null)

getParent

public HierarchicalConfiguration.Node getParent()
Returns the parent of this node.

Returns:
this node's parent (can be null)

setName

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

Parameters:
string - the node name

setValue

public void setValue(java.lang.Object object)
Sets the value of this node.

Parameters:
object - the node value

setParent

public void setParent(HierarchicalConfiguration.Node node)
Sets the parent of this node.

Parameters:
node - the parent node

addChild

public void addChild(HierarchicalConfiguration.Node child)
Adds the specified child object to this node. Note that there can be multiple children with the same name.

Parameters:
child - the child to be added

getChildren

public AbstractConfiguration.Container getChildren()
Returns a list with the child nodes of this node.

Returns:
a list with the children (can be empty, but never null)

getChildren

public AbstractConfiguration.Container getChildren(java.lang.String name)
Returns a list with this node's children with the given name.

Parameters:
name - the name of the children
Returns:
a list with all chidren with this name; may be empty, but never null

remove

public boolean remove(HierarchicalConfiguration.Node child)
Removes the specified child from this node.

Parameters:
child - the child node to be removed
Returns:
a flag if the child could be found

remove

public boolean remove(java.lang.String name)
Removes all children with the given name.

Parameters:
name - the name of the children to be removed
Returns:
a flag if children with this name existed

removeChildren

public void removeChildren()
Removes all children of this node.


visit

public void visit(HierarchicalConfiguration.NodeVisitor visitor,
                  ConfigurationKey key)
A generic method for traversing this node and all of its children. This method sends the passed in visitor to this node and all of its children.

Parameters:
visitor - the visitor
key - here a configuration key with the name of the root node of the iteration can be passed; if this key is not null, the full pathes to the visited nodes are builded and passed to the visitor's visit() methods

clone

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

Returns:
a copy of this object