com.buglabs.util
Class XmlNode

java.lang.Object
  extended by com.buglabs.util.XmlNode

public class XmlNode
extends java.lang.Object

This class represents an XML Node. Any DOM document is a tree of XMLNodes.


Constructor Summary
XmlNode(java.lang.String tagName)
          Create an empty node.
XmlNode(java.lang.String tagName, java.util.List<XmlNode> children)
          Create a node with children.
XmlNode(java.lang.String tagName, java.lang.String value)
          Create a node with a String value.
XmlNode(XmlNode parent, java.lang.String tagName)
          Create a node with a parent.
XmlNode(XmlNode parent, java.lang.String tagName, java.util.List<XmlNode> children)
          Create a node with a parent and children.
XmlNode(XmlNode parent, java.lang.String tagName, java.lang.String value)
          Create a node with a parent and a String value.
 
Method Summary
 XmlNode addAttribute(java.lang.String name, java.lang.String value)
           
 XmlNode addChild(XmlNode element)
          Equivalent to addChildElement except that unchecked exception is thrown on self referencing call.
 XmlNode addChildElement(XmlNode element)
           
 boolean childExists(java.lang.String name)
           
 void clearValue()
          Clear the value of the XML node.
 java.lang.String getAttribute(java.lang.String name)
          Get contents of attribute, or null if attribute does not exist.
 java.util.Map<java.lang.String,java.lang.String> getAttributes()
           
 XmlNode getChild(java.lang.String nodeName)
           
 java.util.List<XmlNode> getChildren()
           
 XmlNode getFirstElement(java.lang.String path)
          Retrieve a node from this element using xpath-like notation.
 java.lang.String getName()
           
 XmlNode getParent()
           
 java.lang.String getValue()
           
 boolean hasChildren()
           
static java.lang.String makeSafeXML(java.lang.String string)
           
 void setAttribute(java.lang.String name, java.lang.String value)
          Set or overwrite existing attibute of node.
 void setName(java.lang.String tagName)
          Set the name of the tag.
 void setParent(XmlNode parent)
           
 void setValue(java.lang.String text)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

XmlNode

public XmlNode(java.lang.String tagName)
Create an empty node.

Parameters:
tagName -

XmlNode

public XmlNode(java.lang.String tagName,
               java.lang.String value)
Create a node with a String value.

Parameters:
tagName -
value -

XmlNode

public XmlNode(java.lang.String tagName,
               java.util.List<XmlNode> children)
Create a node with children.

Parameters:
tagName -
children -

XmlNode

public XmlNode(XmlNode parent,
               java.lang.String tagName)
Create a node with a parent.

Parameters:
parent -
tagName -

XmlNode

public XmlNode(XmlNode parent,
               java.lang.String tagName,
               java.util.List<XmlNode> children)
Create a node with a parent and children.

Parameters:
parent -
tagName -
children -

XmlNode

public XmlNode(XmlNode parent,
               java.lang.String tagName,
               java.lang.String value)
Create a node with a parent and a String value.

Parameters:
parent -
tagName -
value -
Method Detail

hasChildren

public boolean hasChildren()
Returns:
true if the node has childern, false otherwise.

getName

public java.lang.String getName()
Returns:
Name of this node.

addAttribute

public XmlNode addAttribute(java.lang.String name,
                            java.lang.String value)
Parameters:
name -
value -
Returns:
instance of self

setName

public void setName(java.lang.String tagName)
Set the name of the tag.

Parameters:
tagName -

getValue

public java.lang.String getValue()
Returns:

setValue

public void setValue(java.lang.String text)

getAttribute

public java.lang.String getAttribute(java.lang.String name)
Get contents of attribute, or null if attribute does not exist.

Parameters:
name -
Returns:

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.String value)
Set or overwrite existing attibute of node.

Parameters:
name -
value -

clearValue

public void clearValue()
Clear the value of the XML node.


addChildElement

public XmlNode addChildElement(XmlNode element)
                        throws SelfReferenceException
Parameters:
element -
Returns:
Throws:
SelfReferenceException

addChild

public XmlNode addChild(XmlNode element)
Equivalent to addChildElement except that unchecked exception is thrown on self referencing call.

Parameters:
element -
Returns:

getChildren

public java.util.List<XmlNode> getChildren()
Returns:
children of node, or empty list if no children exist.

getAttributes

public java.util.Map<java.lang.String,java.lang.String> getAttributes()
Returns:
Map of attribute names and values as Strings.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

childExists

public boolean childExists(java.lang.String name)
Parameters:
name -
Returns:
true if a node with the given name exists, false otherwise.

getChild

public XmlNode getChild(java.lang.String nodeName)
Parameters:
nodeName -
Returns:
node with given name if exists or null otherwise.

getFirstElement

public XmlNode getFirstElement(java.lang.String path)
Retrieve a node from this element using xpath-like notation. Ex. for call with "root/leaf1" to return first occurrence leaf1 node.

Parameters:
path -
Returns:

getParent

public XmlNode getParent()
Returns:
The parent node or null if root node in DOM.

setParent

public void setParent(XmlNode parent)
               throws SelfReferenceException
Parameters:
parent -
Throws:
SelfReferenceException

makeSafeXML

public static java.lang.String makeSafeXML(java.lang.String string)