Interface ConfigurationNode

All Known Implementing Classes:
DefaultConfigurationNode, HierarchicalConfiguration.Node, ViewNode, XMLPropertyListConfiguration.ArrayNode, XMLPropertyListConfiguration.PListNode

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 attributes.

Since:
1.3
Version:
$Id: ConfigurationNode.java 1234988 2012-01-23 21:12:15Z oheger $
Author:
Commons Configuration team
  • Method Details

    • getName

      Returns the name of this node.
      Returns:
      the node name
    • setName

      void setName(String name)
      Sets the name of this node.
      Parameters:
      name - the node name
    • getValue

      Returns the value of this node.
      Returns:
      the node's value
    • setValue

      void setValue(Object val)
      Sets the value of this node.
      Parameters:
      val - the node's value
    • getReference

      Returns this node's reference.
      Returns:
      the reference
    • setReference

      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

      Returns this node's parent. Can be null, then this node is the top level node.
      Returns:
      the parent of this node
    • setParentNode

      Sets the parent of this node.
      Parameters:
      parent - the parent of this node
    • addChild

      Adds a child to this node.
      Parameters:
      node - the new child
    • 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

      Returns the number of this node's children.
      Returns:
      the number of the children of this node
    • getChildren

      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

      Returns the number of children with the given name.
      Parameters:
      name - the name
      Returns:
      the number of children with this name
    • getChild

      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

      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

      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

      Removes all children from this node.
    • isAttribute

      boolean isAttribute()
      Returns a flag whether this node is an attribute.
      Returns:
      a flag whether this node is an attribute
    • setAttribute

      void setAttribute(boolean f)
      Sets a flag whether this node is an attribute.
      Parameters:
      f - the attribute flag
    • getAttributes

      Returns a list with this node's attributes. Attributes are also modeled as ConfigurationNode objects.
      Returns:
      a list with the attributes
    • getAttributeCount

      Returns the number of attributes of this node.
      Returns:
      the number of attributes
    • getAttributes

      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

      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

      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

      Removes the specified attribute from this node.
      Parameters:
      node - the attribute to remove
      Returns:
      a flag if the node could be removed
    • removeAttribute

      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

      Removes all attributes of this node.
    • addAttribute

      Adds the specified attribute to this node
      Parameters:
      attr - the attribute node
    • isDefined

      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

      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:
    • clone

      Returns a copy of this node.
      Returns:
      the copy