org.apache.axiom.om.xpath
Class DocumentNavigator

java.lang.Object
  extended by org.jaxen.DefaultNavigator
      extended by org.apache.axiom.om.xpath.DocumentNavigator
All Implemented Interfaces:
Serializable, Navigator

public class DocumentNavigator
extends DefaultNavigator

See Also:
Serialized Form

Constructor Summary
DocumentNavigator()
           
 
Method Summary
 Iterator getAncestorAxisIterator(Object contextNode)
          Retrieves an Iterator matching the ancestor XPath axis.
 Iterator getAncestorOrSelfAxisIterator(Object contextNode)
          Retrieves an Iterator matching the ancestor-or-self XPath axis.
 Iterator getAttributeAxisIterator(Object contextNode)
          Retrieves an Iterator matching the attribute XPath axis.
 String getAttributeName(Object object)
          Retrieves the name of the given attribute node.
 String getAttributeNamespaceUri(Object object)
          Retrieves the namespace URI of the given attribute node.
 String getAttributeQName(Object object)
          Retrieves the QName of the given attribute node.
 String getAttributeStringValue(Object object)
          Retrieves the string-value of an attribute node.
 Iterator getChildAxisIterator(Object contextNode)
          Retrieves an Iterator matching the child XPath axis.
 String getCommentStringValue(Object object)
          Retrieves the string-value of a comment node.
 Iterator getDescendantAxisIterator(Object object)
           
 Iterator getDescendantOrSelfAxisIterator(Object contextNode)
          Retrieves an Iterator matching the descendant-or-self XPath axis.
 Object getDocument(String uri)
          Loads a document from the given URI.
 Object getDocumentNode(Object contextNode)
          Returns the document node that contains the given context node.
 Object getElementById(Object contextNode, String elementId)
          Returns the element whose ID is given by elementId.
 String getElementName(Object object)
          Retrieves the name of the given element node.
 String getElementNamespaceUri(Object object)
          Retrieves the namespace URI of the given element node.
 String getElementQName(Object object)
          Retrieves the QName of the given element node.
 String getElementStringValue(Object object)
          Retrieves the string-value of an element node.
 Iterator getFollowingAxisIterator(Object contextNode)
          Retrieves an Iterator matching the following XPath axis.
 Iterator getFollowingSiblingAxisIterator(Object contextNode)
          Retrieves an Iterator matching the following-sibling XPath axis.
 Iterator getNamespaceAxisIterator(Object contextNode)
          Retrieves an Iterator matching the namespace XPath axis.
 String getNamespacePrefix(Object object)
          Retrieves the namespace prefix of a namespace node.
 String getNamespaceStringValue(Object object)
          Retrieves the string-value of a namespace node.
 short getNodeType(Object node)
          Returns a number that identifies the type of node that the given object represents in this navigator.
 Iterator getParentAxisIterator(Object contextNode)
          Retrieves an Iterator matching the parent XPath axis.
 Object getParentNode(Object contextNode)
          Returns the parent of the given context node.
 Iterator getPrecedingAxisIterator(Object contextNode)
          Retrieves an Iterator matching the preceding XPath axis.
 Iterator getPrecedingSiblingAxisIterator(Object contextNode)
          Retrieves an Iterator matching the preceding-sibling XPath axis.
 String getProcessingInstructionData(Object object)
          Retrieves the data of a processing-instruction.
 String getProcessingInstructionTarget(Object object)
          Retrieves the target of a processing-instruction.
 Iterator getSelfAxisIterator(Object contextNode)
          Retrieves an Iterator matching the self xpath axis.
 String getTextStringValue(Object object)
          Retrieve the string-value of a text node.
 boolean isAttribute(Object object)
          Returns whether the given object is an attribute node.
 boolean isComment(Object object)
          Returns whether the given object is a comment node.
 boolean isDocument(Object object)
          Returns whether the given object is a document node.
 boolean isElement(Object object)
          Returns whether the given object is an element node.
 boolean isNamespace(Object object)
          Returns whether the given object is a namespace node.
 boolean isProcessingInstruction(Object object)
          Returns whether the given object is a processing-instruction node.
 boolean isText(Object object)
          Returns whether the given object is a text node.
 XPath parseXPath(String xpath)
          Returns a parsed form of the given xpath string, which will be suitable for queries on documents that use the same navigator as this one.
 String translateNamespacePrefixToUri(String prefix, Object element)
          Translates a namespace prefix to a namespace URI, possibly considering a particular element node.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DocumentNavigator

public DocumentNavigator()
Method Detail

parseXPath

public XPath parseXPath(String xpath)
                 throws SAXPathException
Returns a parsed form of the given xpath string, which will be suitable for queries on documents that use the same navigator as this one.

Parameters:
xpath - the XPath expression
Returns:
Returns a new XPath expression object.
Throws:
SAXPathException - if the string is not a syntactically correct XPath expression
See Also:
XPath

getElementNamespaceUri

public String getElementNamespaceUri(Object object)
Retrieves the namespace URI of the given element node.

Parameters:
object - the context element node
Returns:
Returns the namespace URI of the element node.

getElementName

public String getElementName(Object object)
Retrieves the name of the given element node.

Parameters:
object - the context element node
Returns:
Returns the name of the element node.

getElementQName

public String getElementQName(Object object)
Retrieves the QName of the given element node.

Parameters:
object - the context element node
Returns:
Returns the QName of the element node.

getAttributeNamespaceUri

public String getAttributeNamespaceUri(Object object)
Retrieves the namespace URI of the given attribute node.

Parameters:
object - the context attribute node
Returns:
Returns the namespace URI of the attribute node.

getAttributeName

public String getAttributeName(Object object)
Retrieves the name of the given attribute node.

Parameters:
object - the context attribute node
Returns:
Returns the name of the attribute node.

getAttributeQName

public String getAttributeQName(Object object)
Retrieves the QName of the given attribute node.

Parameters:
object - the context attribute node
Returns:
Returns the qualified name of the attribute node.

isDocument

public boolean isDocument(Object object)
Returns whether the given object is a document node. A document node is the node that is selected by the xpath expression /.

Parameters:
object - the object to test
Returns:
Returns true if the object is a document node, else false .

isElement

public boolean isElement(Object object)
Returns whether the given object is an element node.

Parameters:
object - the object to test
Returns:
Returns true if the object is an element node, else false .

isAttribute

public boolean isAttribute(Object object)
Returns whether the given object is an attribute node.

Parameters:
object - the object to test
Returns:
Returns true if the object is an attribute node, else false .

isNamespace

public boolean isNamespace(Object object)
Returns whether the given object is a namespace node.

Parameters:
object - the object to test
Returns:
Returns true if the object is a namespace node, else false .

isComment

public boolean isComment(Object object)
Returns whether the given object is a comment node.

Parameters:
object - the object to test
Returns:
Returns true if the object is a comment node, else false .

isText

public boolean isText(Object object)
Returns whether the given object is a text node.

Parameters:
object - the object to test
Returns:
Returns true if the object is a text node, else false .

isProcessingInstruction

public boolean isProcessingInstruction(Object object)
Returns whether the given object is a processing-instruction node.

Parameters:
object - the object to test
Returns:
Returns true if the object is a processing-instruction node, else false .

getCommentStringValue

public String getCommentStringValue(Object object)
Retrieves the string-value of a comment node. This may be the empty string if the comment is empty, but must not be null.

Parameters:
object - the comment node
Returns:
Returns the string-value of the node.

getElementStringValue

public String getElementStringValue(Object object)
Retrieves the string-value of an element node. This may be the empty string if the element is empty, but must not be null.

Parameters:
object - the comment node.
Returns:
Returns the string-value of the node.

getAttributeStringValue

public String getAttributeStringValue(Object object)
Retrieves the string-value of an attribute node. This should be the XML 1.0 normalized attribute value. This may be the empty string but must not be null.

Parameters:
object - the attribute node
Returns:
Returns the string-value of the node.

getNamespaceStringValue

public String getNamespaceStringValue(Object object)
Retrieves the string-value of a namespace node. This is generally the namespace URI. This may be the empty string but must not be null.

Parameters:
object - the namespace node
Returns:
Returns the string-value of the node.

getTextStringValue

public String getTextStringValue(Object object)
Retrieve the string-value of a text node. This must not be null and should not be the empty string. The XPath data model does not allow empty text nodes.

Parameters:
object - the text node
Returns:
Returns the string-value of the node.

getNamespacePrefix

public String getNamespacePrefix(Object object)
Retrieves the namespace prefix of a namespace node.

Parameters:
object - the namespace node
Returns:
Returns the prefix associated with the node.

getChildAxisIterator

public Iterator getChildAxisIterator(Object contextNode)
                              throws UnsupportedAxisException
Retrieves an Iterator matching the child XPath axis.

Specified by:
getChildAxisIterator in interface Navigator
Overrides:
getChildAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the child axis are not supported by this object model

getDescendantAxisIterator

public Iterator getDescendantAxisIterator(Object object)
                                   throws UnsupportedAxisException
Specified by:
getDescendantAxisIterator in interface Navigator
Overrides:
getDescendantAxisIterator in class DefaultNavigator
Throws:
UnsupportedAxisException

getAttributeAxisIterator

public Iterator getAttributeAxisIterator(Object contextNode)
                                  throws UnsupportedAxisException
Retrieves an Iterator matching the attribute XPath axis.

Specified by:
getAttributeAxisIterator in interface Navigator
Overrides:
getAttributeAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the attribute axis are not supported by this object model

getNamespaceAxisIterator

public Iterator getNamespaceAxisIterator(Object contextNode)
                                  throws UnsupportedAxisException
Retrieves an Iterator matching the namespace XPath axis.

Specified by:
getNamespaceAxisIterator in interface Navigator
Overrides:
getNamespaceAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the namespace axis are not supported by this object model

getSelfAxisIterator

public Iterator getSelfAxisIterator(Object contextNode)
                             throws UnsupportedAxisException
Retrieves an Iterator matching the self xpath axis.

Specified by:
getSelfAxisIterator in interface Navigator
Overrides:
getSelfAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the self axis are not supported by this object model

getDescendantOrSelfAxisIterator

public Iterator getDescendantOrSelfAxisIterator(Object contextNode)
                                         throws UnsupportedAxisException
Retrieves an Iterator matching the descendant-or-self XPath axis.

Specified by:
getDescendantOrSelfAxisIterator in interface Navigator
Overrides:
getDescendantOrSelfAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the descendant-or-self axis are not supported by this object model

getAncestorOrSelfAxisIterator

public Iterator getAncestorOrSelfAxisIterator(Object contextNode)
                                       throws UnsupportedAxisException
Retrieves an Iterator matching the ancestor-or-self XPath axis.

Specified by:
getAncestorOrSelfAxisIterator in interface Navigator
Overrides:
getAncestorOrSelfAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the ancestor-or-self axis are not supported by this object model

getParentAxisIterator

public Iterator getParentAxisIterator(Object contextNode)
                               throws UnsupportedAxisException
Retrieves an Iterator matching the parent XPath axis.

Specified by:
getParentAxisIterator in interface Navigator
Overrides:
getParentAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the parent axis are not supported by this object model

getAncestorAxisIterator

public Iterator getAncestorAxisIterator(Object contextNode)
                                 throws UnsupportedAxisException
Retrieves an Iterator matching the ancestor XPath axis.

Specified by:
getAncestorAxisIterator in interface Navigator
Overrides:
getAncestorAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the ancestor axis are not supported by this object model

getFollowingSiblingAxisIterator

public Iterator getFollowingSiblingAxisIterator(Object contextNode)
                                         throws UnsupportedAxisException
Retrieves an Iterator matching the following-sibling XPath axis.

Specified by:
getFollowingSiblingAxisIterator in interface Navigator
Overrides:
getFollowingSiblingAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the following-sibling axis are not supported by this object model

getPrecedingSiblingAxisIterator

public Iterator getPrecedingSiblingAxisIterator(Object contextNode)
                                         throws UnsupportedAxisException
Retrieves an Iterator matching the preceding-sibling XPath axis.

Specified by:
getPrecedingSiblingAxisIterator in interface Navigator
Overrides:
getPrecedingSiblingAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the preceding-sibling axis are not supported by this object model

getFollowingAxisIterator

public Iterator getFollowingAxisIterator(Object contextNode)
                                  throws UnsupportedAxisException
Retrieves an Iterator matching the following XPath axis.

Specified by:
getFollowingAxisIterator in interface Navigator
Overrides:
getFollowingAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the following axis are not supported by this object model

getPrecedingAxisIterator

public Iterator getPrecedingAxisIterator(Object contextNode)
                                  throws UnsupportedAxisException
Retrieves an Iterator matching the preceding XPath axis.

Specified by:
getPrecedingAxisIterator in interface Navigator
Overrides:
getPrecedingAxisIterator in class DefaultNavigator
Parameters:
contextNode - the original context node
Returns:
Returns an Iterator capable of traversing the axis, not null.
Throws:
UnsupportedAxisException - if the semantics of the preceding axis are not supported by this object model

getDocument

public Object getDocument(String uri)
                   throws FunctionCallException
Loads a document from the given URI.

Specified by:
getDocument in interface Navigator
Overrides:
getDocument in class DefaultNavigator
Parameters:
uri - the URI of the document to load
Returns:
Returns the document.
Throws:
FunctionCallException - if the document could not be loaded

getElementById

public Object getElementById(Object contextNode,
                             String elementId)
Returns the element whose ID is given by elementId. If no such element exists, returns null. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return null.

Specified by:
getElementById in interface Navigator
Overrides:
getElementById in class DefaultNavigator
Parameters:
contextNode - a node from the document in which to look for the id
elementId - id to look for
Returns:
Returns element whose ID is given by elementId, or null if no such element exists in the document or if the implementation does not know about attribute types.

getDocumentNode

public Object getDocumentNode(Object contextNode)
Returns the document node that contains the given context node.

Specified by:
getDocumentNode in interface Navigator
Overrides:
getDocumentNode in class DefaultNavigator
Parameters:
contextNode - the context node
Returns:
Returns the document of the context node.
See Also:
isDocument(Object)

translateNamespacePrefixToUri

public String translateNamespacePrefixToUri(String prefix,
                                            Object element)
Translates a namespace prefix to a namespace URI, possibly considering a particular element node.

Strictly speaking, prefix-to-URI translation should occur irrespective of any element in the document. This method is provided to allow a non-conforming ease-of-use enhancement.

Specified by:
translateNamespacePrefixToUri in interface Navigator
Overrides:
translateNamespacePrefixToUri in class DefaultNavigator
Parameters:
prefix - the prefix to translate
element - the element to consider during translation
Returns:
Returns the namespace URI associated with the prefix.

getProcessingInstructionTarget

public String getProcessingInstructionTarget(Object object)
Retrieves the target of a processing-instruction.

Specified by:
getProcessingInstructionTarget in interface Navigator
Overrides:
getProcessingInstructionTarget in class DefaultNavigator
Parameters:
object - the context processing-instruction node
Returns:
Returns the target of the processing-instruction node.

getProcessingInstructionData

public String getProcessingInstructionData(Object object)
Retrieves the data of a processing-instruction.

Specified by:
getProcessingInstructionData in interface Navigator
Overrides:
getProcessingInstructionData in class DefaultNavigator
Parameters:
object - the context processing-instruction node
Returns:
Returns the data of the processing-instruction node.

getNodeType

public short getNodeType(Object node)
Returns a number that identifies the type of node that the given object represents in this navigator. See org.jaxen.pattern.Pattern

Specified by:
getNodeType in interface Navigator
Overrides:
getNodeType in class DefaultNavigator
Parameters:
node - ????
Returns:
Returns short.

getParentNode

public Object getParentNode(Object contextNode)
                     throws UnsupportedAxisException
Returns the parent of the given context node.

The parent of any node must either be a document node or an element node.

Specified by:
getParentNode in interface Navigator
Overrides:
getParentNode in class DefaultNavigator
Parameters:
contextNode - the context node
Returns:
Returns the parent of the context node, or null if this is a document node.
Throws:
UnsupportedAxisException - if the parent axis is not supported by the model
See Also:
isDocument(java.lang.Object), isElement(java.lang.Object)


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.