Class TreeNode

java.lang.Object
org.apache.jasper.xmlparser.TreeNode

public class TreeNode extends Object
Simplified implementation of a Node from a Document Object Model (DOM) parse of an XML document. This class is used to represent a DOM tree so that the XML parser's implementation of org.w3c.dom need not be visible to the remainder of Jasper.

WARNING - Construction of a new tree, or modifications to an existing one, are not thread-safe and such accesses must be synchronized.

Version:
$Revision: 1.2 $ $Date: 2005/12/08 01:29:00 $
  • Field Details

    • attributes

      protected HashMap<String,String> attributes
      The attributes of this node, keyed by attribute name, Instantiated only if required.
    • body

      protected String body
      The body text associated with this node (if any).
    • children

      protected ArrayList<TreeNode> children
      The children of this node, instantiated only if required.
    • name

      protected String name
      The name of this node.
    • parent

      protected TreeNode parent
      The parent node of this node.
  • Constructor Details

    • TreeNode

      public TreeNode(String name)
      Construct a new node with no parent.
      Parameters:
      name - The name of this node
    • TreeNode

      public TreeNode(String name, TreeNode parent)
      Construct a new node with the specified parent.
      Parameters:
      name - The name of this node
      parent - The node that is the parent of this node
  • Method Details

    • addAttribute

      public void addAttribute(String name, String value)
      Add an attribute to this node, replacing any existing attribute with the same name.
      Parameters:
      name - The attribute name to add
      value - The new attribute value
    • addChild

      public void addChild(TreeNode node)
      Add a new child node to this node.
      Parameters:
      node - The new child node
    • findAttribute

      public String findAttribute(String name)
      Return the value of the specified node attribute if it exists, or null otherwise.
      Parameters:
      name - Name of the requested attribute
    • findAttributes

      public Iterator<String> findAttributes()
      Return an Iterator of the attribute names of this node. If there are no attributes, an empty Iterator is returned.
    • findChild

      public TreeNode findChild(String name)
      Return the first child node of this node with the specified name, if there is one; otherwise, return null.
      Parameters:
      name - Name of the desired child element
    • findChildren

      public Iterator<TreeNode> findChildren()
      Return an Iterator of all children of this node. If there are no children, an empty Iterator is returned.
    • findChildren

      public Iterator<TreeNode> findChildren(String name)
      Return an Iterator over all children of this node that have the specified name. If there are no such children, an empty Iterator is returned.
      Parameters:
      name - Name used to select children
    • getBody

      public String getBody()
      Return the body text associated with this node (if any).
    • getName

      public String getName()
      Return the name of this node.
    • removeAttribute

      public void removeAttribute(String name)
      Remove any existing value for the specified attribute name.
      Parameters:
      name - The attribute name to remove
    • removeNode

      public void removeNode(TreeNode node)
      Remove a child node from this node, if it is one.
      Parameters:
      node - The child node to remove
    • setBody

      public void setBody(String body)
      Set the body text associated with this node (if any).
      Parameters:
      body - The body text (if any)
    • toString

      public String toString()
      Return a String representation of this TreeNode.
      Overrides:
      toString in class Object
    • toString

      protected void toString(StringBuilder sb, int indent, TreeNode node)
      Append to the specified StringBuilder a character representation of this node, with the specified amount of indentation.
      Parameters:
      sb - The StringBuilder to append to
      indent - Number of characters of indentation
      node - The TreeNode to be printed