org.apache.jasper.xmlparser

Class 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: 467222 $ $Date: 2006-10-24 05:17:11 +0200 (Tue, 24 Oct 2006) $

Author: Craig R. McClanahan

Field Summary
protected HashMapattributes
The attributes of this node, keyed by attribute name, Instantiated only if required.
protected Stringbody
The body text associated with this node (if any).
protected ArrayListchildren
The children of this node, instantiated only if required.
protected Stringname
The name of this node.
protected TreeNodeparent
The parent node of this node.
Constructor Summary
TreeNode(String name)
Construct a new node with no parent.
TreeNode(String name, TreeNode parent)
Construct a new node with the specified parent.
Method Summary
voidaddAttribute(String name, String value)
Add an attribute to this node, replacing any existing attribute with the same name.
voidaddChild(TreeNode node)
Add a new child node to this node.
StringfindAttribute(String name)
Return the value of the specified node attribute if it exists, or null otherwise.
IteratorfindAttributes()
Return an Iterator of the attribute names of this node.
TreeNodefindChild(String name)
Return the first child node of this node with the specified name, if there is one; otherwise, return null.
IteratorfindChildren()
Return an Iterator of all children of this node.
IteratorfindChildren(String name)
Return an Iterator over all children of this node that have the specified name.
StringgetBody()
Return the body text associated with this node (if any).
StringgetName()
Return the name of this node.
voidremoveAttribute(String name)
Remove any existing value for the specified attribute name.
voidremoveNode(TreeNode node)
Remove a child node from this node, if it is one.
voidsetBody(String body)
Set the body text associated with this node (if any).
StringtoString()
Return a String representation of this TreeNode.
protected voidtoString(StringBuffer sb, int indent, TreeNode node)
Append to the specified StringBuffer a character representation of this node, with the specified amount of indentation.

Field Detail

attributes

protected HashMap 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 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)
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 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 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 findChildren()
Return an Iterator of all children of this node. If there are no children, an empty Iterator is returned.

findChildren

public Iterator 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.

toString

protected void toString(StringBuffer sb, int indent, TreeNode node)
Append to the specified StringBuffer a character representation of this node, with the specified amount of indentation.

Parameters: sb The StringBuffer to append to indent Number of characters of indentation node The TreeNode to be printed

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