org.apache.jasper.xmlparser

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

  Author:
    Craig R. McClanahan

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected HashMap<String,String>` | `attributes` The attributes of this node, keyed by attribute name, Instantiated only if required.
    `protected String` | `body` The body text associated with this node (if any).
    `protected ArrayList<TreeNode>` | `children` The children of this node, instantiated only if required.
    `protected String` | `name` The name of this node.
    `protected TreeNode` | `parent` The parent node of this node.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TreeNode(String name, TreeNode parent)` Construct a new node with the specified parent.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAttribute(String name, String value)` Add an attribute to this node, replacing any existing attribute with the same name.
    `void` | `addChild(TreeNode node)` Add a new child node to this node.
    `String` | `findAttribute(String name)` Return the value of the specified node attribute if it exists, or `null` otherwise.
    `Iterator<String>` | `findAttributes()` Return an Iterator of the attribute names of this node.
    `TreeNode` | `findChild(String name)` Return the first child node of this node with the specified name, if there is one; otherwise, return `null`.
    `Iterator<TreeNode>` | `findChildren()` Return an Iterator of all children of this node.
    `Iterator<TreeNode>` | `findChildren(String name)` Return an Iterator over all children of this node that have the specified name.
    `String` | `getBody()` Return the body text associated with this node (if any).
    `String` | `getName()` Return the name of this node.
    `void` | `setBody(String body)` Set the body text associated with this node (if any).
    `String` | `toString()` Return a String representation of this TreeNode.
    `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### 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 Detail

    - #### 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 Detail

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

    - #### 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

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.