Class TreeNode
java.lang.Object
org.apache.sling.scripting.jsp.jasper.xmlparser.TreeNode
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 (Die, 24 Okt 2006) $
- Author:
- Craig R. McClanahan
-
Field Summary
Modifier and TypeFieldDescriptionprotected HashMap
The attributes of this node, keyed by attribute name, Instantiated only if required.protected String
The body text associated with this node (if any).protected ArrayList
The children of this node, instantiated only if required.protected String
The name of this node.protected TreeNode
The parent node of this node. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addAttribute
(String name, String value) Add an attribute to this node, replacing any existing attribute with the same name.void
Add a new child node to this node.findAttribute
(String name) Return the value of the specified node attribute if it exists, ornull
otherwise.Return an Iterator of the attribute names of this node.Return the first child node of this node with the specified name, if there is one; otherwise, returnnull
.Return an Iterator of all children of this node.findChildren
(String name) Return an Iterator over all children of this node that have the specified name.getBody()
Return the body text associated with this node (if any).getName()
Return the name of this node.void
removeAttribute
(String name) Remove any existing value for the specified attribute name.void
removeNode
(TreeNode node) Remove a child node from this node, if it is one.void
Set the body text associated with this node (if any).toString()
Return a String representation of this TreeNode.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.
-
Field Details
-
attributes
The attributes of this node, keyed by attribute name, Instantiated only if required. -
body
The body text associated with this node (if any). -
children
The children of this node, instantiated only if required. -
name
The name of this node. -
parent
The parent node of this node.
-
-
Constructor Details
-
TreeNode
Construct a new node with no parent.- Parameters:
name
- The name of this node
-
TreeNode
Construct a new node with the specified parent.- Parameters:
name
- The name of this nodeparent
- The node that is the parent of this node
-
-
Method Details
-
addAttribute
Add an attribute to this node, replacing any existing attribute with the same name.- Parameters:
name
- The attribute name to addvalue
- The new attribute value
-
addChild
Add a new child node to this node.- Parameters:
node
- The new child node
-
findAttribute
Return the value of the specified node attribute if it exists, ornull
otherwise.- Parameters:
name
- Name of the requested attribute
-
findAttributes
Return an Iterator of the attribute names of this node. If there are no attributes, an empty Iterator is returned. -
findChild
Return the first child node of this node with the specified name, if there is one; otherwise, returnnull
.- Parameters:
name
- Name of the desired child element
-
findChildren
Return an Iterator of all children of this node. If there are no children, an empty Iterator is returned. -
findChildren
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
Return the body text associated with this node (if any). -
getName
Return the name of this node. -
removeAttribute
Remove any existing value for the specified attribute name.- Parameters:
name
- The attribute name to remove
-
removeNode
Remove a child node from this node, if it is one.- Parameters:
node
- The child node to remove
-
setBody
Set the body text associated with this node (if any).- Parameters:
body
- The body text (if any)
-
toString
Return a String representation of this TreeNode. -
toString
Append to the specified StringBuffer a character representation of this node, with the specified amount of indentation.- Parameters:
sb
- The StringBuffer to append toindent
- Number of characters of indentationnode
- The TreeNode to be printed
-