org.apache.commons.configuration.tree

Interface ConfigurationNode

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
voidaddAttribute(ConfigurationNode attr)
Adds the specified attribute to this node
voidaddChild(ConfigurationNode node)
Adds a child to this node.
Objectclone()
Returns a copy of this node.
ConfigurationNodegetAttribute(int index)
Returns the attribute node with the given index.
intgetAttributeCount()
Returns the number of attributes of this node.
intgetAttributeCount(String name)
Returns the number of attributes with the given name.
ListgetAttributes()
Returns a list with this node's attributes.
ListgetAttributes(String name)
Returns a list with the attribute nodes with the given name.
ConfigurationNodegetChild(int index)
Returns the child node with the given index.
ListgetChildren()
Returns a list with the child nodes of this node.
ListgetChildren(String name)
Returns a list with all children of this node with the given name.
intgetChildrenCount()
Returns the number of this node's children.
intgetChildrenCount(String name)
Returns the number of children with the given name.
StringgetName()
Returns the name of this node.
ConfigurationNodegetParentNode()
Returns this node's parent.
ObjectgetReference()
Returns this node's reference.
ObjectgetValue()
Returns the value of this node.
booleanisAttribute()
Returns a flag whether this node is an attribute.
booleanisDefined()
Returns a flag if this node is defined.
booleanremoveAttribute(ConfigurationNode node)
Removes the specified attribute from this node.
booleanremoveAttribute(String name)
Removes all attributes with the given name.
voidremoveAttributes()
Removes all attributes of this node.
booleanremoveChild(ConfigurationNode child)
Removes the given node from this node's children.
booleanremoveChild(String childName)
Removes all child nodes of this node with the given name.
voidremoveChildren()
Removes all children from this node.
voidsetAttribute(boolean f)
Sets a flag whether this node is an attribute.
voidsetName(String name)
Sets the name of this node.
voidsetParentNode(ConfigurationNode parent)
Sets the parent of this node.
voidsetReference(Object ref)
Sets this node's reference.
voidsetValue(Object val)
Sets the value of this node.
voidvisit(ConfigurationNodeVisitor visitor)
Visits this node and all its sub nodes.

Method Detail

addAttribute

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

Parameters: attr the attribute node

addChild

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

Parameters: node the new child

clone

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

Returns: the copy

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

getAttributeCount

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

Returns: the number of attributes

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

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

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)

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

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)

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()
Returns the number of this node's children.

Returns: the number of the children of this node

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

getName

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

Returns: the node name

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

getReference

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

Returns: the reference

getValue

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

Returns: the node's value

isAttribute

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

Returns: a flag whether this node is an attribute

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

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.

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.

setAttribute

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

Parameters: f the attribute flag

setName

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

Parameters: name the node name

setParentNode

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

Parameters: parent the parent of this node

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

setValue

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

Parameters: val the node's value

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