org.apache.commons.configuration.tree
Interface ConfigurationNode

All Known Implementing Classes:
DefaultConfigurationNode

public interface ConfigurationNode

Definition of an interface for the nodes of a hierarchical configuration.

This interface defines a tree like structure for configuration data. A node has a value and can have an arbitrary number of children and attribures.

Since:
1.3
Version:
$Id: ConfigurationNode.java 439648 2006-09-02 20:42:10Z oheger $
Author:
Oliver Heger

Method Summary
 void addAttribute(ConfigurationNode attr)
          Adds the specified attribute to this node
 void addChild(ConfigurationNode node)
          Adds a child to this node.
 Object clone()
          Returns a copy of this node.
 ConfigurationNode getAttribute(int index)
          Returns the attribute node with the given index.
 int getAttributeCount()
          Returns the number of attributes of this node.
 int getAttributeCount(String name)
          Returns the number of attributes with the given name.
 List getAttributes()
          Returns a list with this node's attributes.
 List getAttributes(String name)
          Returns a list with the attribute nodes with the given name.
 ConfigurationNode getChild(int index)
          Returns the child node with the given index.
 List getChildren()
          Returns a list with the child nodes of this node.
 List getChildren(String name)
          Returns a list with all children of this node with the given name.
 int getChildrenCount()
          Returns the number of this node's children.
 int getChildrenCount(String name)
          Returns the number of children with the given name.
 String getName()
          Returns the name of this node.
 ConfigurationNode getParentNode()
          Returns this node's parent.
 Object getReference()
          Returns this node's reference.
 Object getValue()
          Returns the value of this node.
 boolean isAttribute()
          Returns a flag whether this node is an attribute.
 boolean isDefined()
          Returns a flag if this node is defined.
 boolean removeAttribute(ConfigurationNode node)
          Removes the specified attribute from this node.
 boolean removeAttribute(String name)
          Removes all attributes with the given name.
 void removeAttributes()
          Removes all attributes of this node.
 boolean removeChild(ConfigurationNode child)
          Removes the given node from this node's children.
 boolean removeChild(String childName)
          Removes all child nodes of this node with the given name.
 void removeChildren()
          Removes all children from this node.
 void setAttribute(boolean f)
          Sets a flag whether this node is an attribute.
 void setName(String name)
          Sets the name of this node.
 void setParentNode(ConfigurationNode parent)
          Sets the parent of this node.
 void setReference(Object ref)
          Sets this node's reference.
 void setValue(Object val)
          Sets the value of this node.
 void visit(ConfigurationNodeVisitor visitor)
          Visits this node and all its sub nodes.
 

Method Detail

getName

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

Returns:
the node name

setName

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

Parameters:
name - the node name

getValue

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

Returns:
the node's value

setValue

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

Parameters:
val - the node's value

getReference

public Object getReference()
Returns this node's reference.

Returns:
the reference

setReference

public void setReference(Object ref)
Sets this node's reference. This reference can be used by concrete Configuration implementations to store data associated with each node. A XML based configuration for instance could here store a reference to the corresponding DOM element.

Parameters:
ref - the reference

getParentNode

public ConfigurationNode getParentNode()
Returns this node's parent. Can be null, then this node is the top level node.

Returns:
the parent of this node

setParentNode

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

Parameters:
parent - the parent of this node

addChild

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

Parameters:
node - the new child

getChildren

public List getChildren()
Returns a list with the child nodes of this node. The nodes in this list should be in the order they were inserted into this node.

Returns:
a list with the children of this node (never null)

getChildrenCount

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

Returns:
the number of the children of this node

getChildren

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

Parameters:
name - the name of the searched children
Returns:
a list with all child nodes with this name (never null)

getChildrenCount

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

Parameters:
name - the name
Returns:
the number of children with this name

getChild

public ConfigurationNode getChild(int index)
Returns the child node with the given index. If the index does not exist, an exception will be thrown.

Parameters:
index - the index of the child node (0-based)
Returns:
the child node with this index

removeChild

public boolean removeChild(ConfigurationNode child)
Removes the given node from this node's children.

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

removeChild

public boolean removeChild(String childName)
Removes all child nodes of this node with the given name.

Parameters:
childName - the name of the children to be removed
Returns:
a flag if at least one child was removed

removeChildren

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


isAttribute

public boolean isAttribute()
Returns a flag whether this node is an attribute.

Returns:
a flag whether this node is an attribute

setAttribute

public void setAttribute(boolean f)
Sets a flag whether this node is an attribute.

Parameters:
f - the attribute flag

getAttributes

public List getAttributes()
Returns a list with this node's attributes. Attributes are also modeled as ConfigurationNode objects.

Returns:
a list with the attributes

getAttributeCount

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

Returns:
the number of attributes

getAttributes

public List getAttributes(String name)
Returns a list with the attribute nodes with the given name. Attributes with same names can be added multiple times, so the return value of this method is a list.

Parameters:
name - the name of the attribute
Returns:
the attribute nodes with this name (never null)

getAttributeCount

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

Parameters:
name - the name of the attribute
Returns:
the number of attributes with this name

getAttribute

public ConfigurationNode getAttribute(int index)
Returns the attribute node with the given index. If no such index exists, an exception will be thrown.

Parameters:
index - the index
Returns:
the attribute node with this index

removeAttribute

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

Parameters:
node - the attribute to remove
Returns:
a flag if the node could be removed

removeAttribute

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

Parameters:
name - the name of the attributes to be removed
Returns:
a flag if at least one attribute was removed

removeAttributes

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


addAttribute

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

Parameters:
attr - the attribute node

isDefined

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

Returns:
a flag whether this node is defined

visit

public void visit(ConfigurationNodeVisitor visitor)
Visits this node and all its sub nodes. This method provides a simple means for going through a hierarchical structure of configuration nodes.

Parameters:
visitor - the visitor
See Also:
ConfigurationNodeVisitor

clone

public Object clone()
Returns a copy of this node.

Returns:
the copy


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