public abstract class AbstractNode extends java.lang.Object implements Node, java.lang.Cloneable, java.io.Serializable
 AbstractNode is an abstract base class for tree implementors
 to use for implementation inheritence.
 
| Modifier and Type | Field and Description | 
|---|---|
protected static java.lang.String[] | 
NODE_TYPE_NAMES  | 
ANY_NODE, ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_REFERENCE_NODE, MAX_NODE_TYPE, NAMESPACE_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE, UNKNOWN_NODE| Constructor and Description | 
|---|
AbstractNode()  | 
| Modifier and Type | Method and Description | 
|---|---|
Node | 
asXPathResult(Element parent)
asXPathResult returns a version of this node which is
 capable of being an XPath result. | 
java.lang.Object | 
clone()
clone will return a deep clone or if this node is
 read-only then clone will return the same instance. | 
Pattern | 
createPattern(java.lang.String patternText)  | 
XPath | 
createXPath(java.lang.String xpathExpression)
createXPath creates an XPath object for the given
 xpathExpression. | 
NodeFilter | 
createXPathFilter(java.lang.String patternText)  | 
protected Node | 
createXPathResult(Element parent)  | 
Node | 
detach()
 Removes this node from its parent if there is one. 
 | 
Document | 
getDocument()
getDocument returns the Document that this
 Node is part of if this node supports the parent
 relationship. | 
protected DocumentFactory | 
getDocumentFactory()  | 
java.lang.String | 
getName()
getName returns the name of this node. | 
short | 
getNodeType()
Returns the code according to the type of node. 
 | 
java.lang.String | 
getNodeTypeName()
DOCUMENT ME! 
 | 
Element | 
getParent()
getParent returns the parent Element if
 this node supports the parent relationship or null if it is the root
 element or does not support the parent relationship. | 
java.lang.String | 
getPath()
 Returns the XPath expression which will return a node set containing the
 given node such as /a/b/@c. 
 | 
java.lang.String | 
getStringValue()
Returns the XPath string-value of this node. 
 | 
java.lang.String | 
getText()
 Returns the text of this node. 
 | 
java.lang.String | 
getUniquePath()
 Returns the XPath expression which will return a nodeset of one node
 which is the current node. 
 | 
boolean | 
hasContent()
hasContent returns true if this node is a Branch (either
 an Element or a Document) and it contains at least one content node such
 as a child Element or Text node. | 
boolean | 
isReadOnly()
isReadOnly returns true if this node is read only and
 cannot be modified. | 
boolean | 
matches(java.lang.String patternText)
matches returns true if evaluating the given XPath
 expression on this node returns a non-empty node set containing this
 node. | 
java.lang.Number | 
numberValueOf(java.lang.String xpathExpression)
numberValueOf evaluates an XPath expression and returns
 the numeric value of the XPath expression if the XPath expression results
 in a number, or null if the result is not a number. | 
java.util.List<Node> | 
selectNodes(java.lang.String xpathExpression)
selectNodes evaluates an XPath expression and returns the
 result as a List of Node instances or
 String instances depending on the XPath expression. | 
java.util.List<Node> | 
selectNodes(java.lang.String xpathExpression,
           java.lang.String comparisonXPathExpression)
selectNodes evaluates an XPath expression then sorts the
 results using a secondary XPath expression Returns a sorted
 List of Node instances. | 
java.util.List<Node> | 
selectNodes(java.lang.String xpathExpression,
           java.lang.String comparisonXPathExpression,
           boolean removeDuplicates)
selectNodes evaluates an XPath expression then sorts the
 results using a secondary XPath expression Returns a sorted
 List of Node instances. | 
java.lang.Object | 
selectObject(java.lang.String xpathExpression)
selectObject evaluates an XPath expression and returns the
 result as an Object. | 
Node | 
selectSingleNode(java.lang.String xpathExpression)
selectSingleNode evaluates an XPath expression and returns
 the result as a single Node instance. | 
void | 
setDocument(Document document)
setDocument sets the document of this node if the parent
 relationship is supported or does nothing if the parent relationship is
 not supported. | 
void | 
setName(java.lang.String name)
 Sets the text data of this node or this method will throw an
  
UnsupportedOperationException if it is read-only. | 
void | 
setParent(Element parent)
setParent sets the parent relationship of this node if the
 parent relationship is supported or does nothing if the parent
 relationship is not supported. | 
void | 
setText(java.lang.String text)
 Sets the text data of this node or this method will throw an
  
UnsupportedOperationException if it is read-only. | 
boolean | 
supportsParent()
supportsParent returns true if this node supports the
 parent relationship. | 
java.lang.String | 
valueOf(java.lang.String xpathExpression)
valueOf evaluates an XPath expression and returns the
 textual representation of the results the XPath string-value of this
 node. | 
void | 
write(java.io.Writer writer)
write writes this node as the default XML notation for
 this node. | 
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaccept, asXML, getPath, getUniquePathpublic short getNodeType()
NodegetNodeType in interface Nodepublic java.lang.String getNodeTypeName()
NodegetNodeTypeName in interface Nodepublic Document getDocument()
Node
 getDocument returns the Document that this
 Node is part of if this node supports the parent
 relationship.
 
 This method is an optional feature and may not be supported for all
 Node implementations.
 
getDocument in interface NodeDocumentpublic void setDocument(Document document)
Node
 setDocument sets the document of this node if the parent
 relationship is supported or does nothing if the parent relationship is
 not supported.
 
 This method should only be called from inside a Document
 implementation method and is not intended for general use.
 
setDocument in interface Nodedocument - is the new document of this node.public Element getParent()
Node
 getParent returns the parent Element if
 this node supports the parent relationship or null if it is the root
 element or does not support the parent relationship.
 
 This method is an optional feature and may not be supported for all
 Node implementations.
 
public void setParent(Element parent)
Node
 setParent sets the parent relationship of this node if the
 parent relationship is supported or does nothing if the parent
 relationship is not supported.
 
 This method should only be called from inside an Element
 implementation method and is not intended for general use.
 
public boolean supportsParent()
Node
 supportsParent returns true if this node supports the
 parent relationship.
 
Some XML tree implementations are singly linked and only support downward navigation through children relationships. The default case is that both parent and children relationships are supported though for memory and performance reasons the parent relationship may not be supported.
supportsParent in interface Nodepublic boolean isReadOnly()
Node
 isReadOnly returns true if this node is read only and
 cannot be modified. Any attempt to modify a read-only Node
 will result in an UnsupportedOperationException being
 thrown.
 
isReadOnly in interface NodeNode is read only and cannot be
         modified otherwise false.public boolean hasContent()
Node
 hasContent returns true if this node is a Branch (either
 an Element or a Document) and it contains at least one content node such
 as a child Element or Text node.
 
hasContent in interface NodeNode is a Branch with a nodeCount()
         of one or more.public java.lang.String getPath()
NodeReturns the XPath expression which will return a node set containing the given node such as /a/b/@c. No indexing will be used to restrict the path if multiple elements with the same name occur on the path.
public java.lang.String getUniquePath()
NodeReturns the XPath expression which will return a nodeset of one node which is the current node. This method will use the XPath index operator to restrict the path if multiple elements with the same name occur on the path.
getUniquePath in interface Nodepublic java.lang.Object clone()
Node
 clone will return a deep clone or if this node is
 read-only then clone will return the same instance.
 
public Node detach()
NodeRemoves this node from its parent if there is one. If this node is the root element of a document then it is removed from the document as well.
This method is useful if you want to remove a node from its source document and add it to another document. For example
 Node node = ...; Element someOtherElement = ...;
 someOtherElement.add( node.detach() ); public java.lang.String getName()
Node
 getName returns the name of this node. This is the XML
 local name of the element, attribute, entity or processing instruction.
 For CDATA and Text nodes this method will return null.
 
public void setName(java.lang.String name)
Node
 Sets the text data of this node or this method will throw an
 UnsupportedOperationException if it is read-only.
 
public java.lang.String getText()
NodeReturns the text of this node.
public java.lang.String getStringValue()
NodegetStringValue in interface Nodepublic void setText(java.lang.String text)
Node
 Sets the text data of this node or this method will throw an
 UnsupportedOperationException if it is read-only.
 
public void write(java.io.Writer writer)
           throws java.io.IOException
Node
 write writes this node as the default XML notation for
 this node. If you wish to control the XML output (such as for pretty
 printing, changing the indentation policy etc.) then please use XMLWriter or its derivations.
 
public java.lang.Object selectObject(java.lang.String xpathExpression)
Node
 selectObject evaluates an XPath expression and returns the
 result as an Object. The object returned can either be a List of one or more Nodeinstances or a scalar object like a
 Stringor a Numberinstance depending on the XPath
 expression.
 
selectObject in interface NodexpathExpression - is the XPath expression to be evaluatedListof Node instances, a Stringor a Numberinstance
         depending on the XPath expression.public java.util.List<Node> selectNodes(java.lang.String xpathExpression)
Node
 selectNodes evaluates an XPath expression and returns the
 result as a List of Node instances or
 String instances depending on the XPath expression.
 
selectNodes in interface NodexpathExpression - is the XPath expression to be evaluatedNode or String
         instances depending on the XPath expressionpublic java.util.List<Node> selectNodes(java.lang.String xpathExpression, java.lang.String comparisonXPathExpression)
Node
 selectNodes evaluates an XPath expression then sorts the
 results using a secondary XPath expression Returns a sorted
 List of Node instances.
 
selectNodes in interface NodexpathExpression - is the XPath expression to be evaluatedcomparisonXPathExpression - is the XPath expression used to compare the results by for
            sortingNode instances sorted by the
         comparisonXPathExpressionpublic java.util.List<Node> selectNodes(java.lang.String xpathExpression, java.lang.String comparisonXPathExpression, boolean removeDuplicates)
Node
 selectNodes evaluates an XPath expression then sorts the
 results using a secondary XPath expression Returns a sorted
 List of Node instances.
 
selectNodes in interface NodexpathExpression - is the XPath expression to be evaluatedcomparisonXPathExpression - is the XPath expression used to compare the results by for
            sortingremoveDuplicates - if this parameter is true then duplicate values (using the
            comparisonXPathExpression) are removed from the result List.Node instances sorted by the
         comparisonXPathExpressionpublic Node selectSingleNode(java.lang.String xpathExpression)
Node
 selectSingleNode evaluates an XPath expression and returns
 the result as a single Node instance.
 
selectSingleNode in interface NodexpathExpression - is the XPath expression to be evaluatedNode matching the XPath expressionpublic java.lang.String valueOf(java.lang.String xpathExpression)
Node
 valueOf evaluates an XPath expression and returns the
 textual representation of the results the XPath string-value of this
 node. The string-value for a given node type is defined in the XPath specification .
 
public java.lang.Number numberValueOf(java.lang.String xpathExpression)
Node
 numberValueOf evaluates an XPath expression and returns
 the numeric value of the XPath expression if the XPath expression results
 in a number, or null if the result is not a number.
 
numberValueOf in interface NodexpathExpression - is the XPath expression to be evaluatedpublic boolean matches(java.lang.String patternText)
Node
 matches returns true if evaluating the given XPath
 expression on this node returns a non-empty node set containing this
 node.
 
This method does not behave like the <xsl:if> element - if you want that behaviour, to evaluate if an XPath expression matches something, then you can use the following code to be equivalent...
if ( node.selectSingleNode( "/some/path" ) != nulll )public XPath createXPath(java.lang.String xpathExpression)
Node
 createXPath creates an XPath object for the given
 xpathExpression. The XPath object allows the variable context to be
 specified.
 
createXPath in interface NodexpathExpression - is the XPath expression to be evaluatedpublic NodeFilter createXPathFilter(java.lang.String patternText)
public Pattern createPattern(java.lang.String patternText)
public Node asXPathResult(Element parent)
Node
 asXPathResult returns a version of this node which is
 capable of being an XPath result. The result of an XPath expression
 should always support the parent relationship, whether the original XML
 tree was singly or doubly linked. If the node does not support the parent
 relationship then a new node will be created which is linked to its
 parent and returned.
 
asXPathResult in interface Nodeparent - DOCUMENT ME!Node which supports the parent relationshipprotected DocumentFactory getDocumentFactory()