Class DocumentNavigator

  • All Implemented Interfaces:
    Serializable, org.jaxen.Navigator

    public class DocumentNavigator
    extends org.jaxen.DefaultNavigator
    See Also:
    Serialized Form
    • Constructor Detail

      • DocumentNavigator

        public DocumentNavigator()
    • Method Detail

      • parseXPath

        public org.jaxen.XPath parseXPath​(String xpath)
                                   throws org.jaxen.saxpath.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:
        org.jaxen.saxpath.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 org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the child XPath axis.
        Specified by:
        getChildAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getChildAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the child axis are not supported by this object model
      • getDescendantAxisIterator

        public Iterator<?> getDescendantAxisIterator​(Object object)
                                              throws org.jaxen.UnsupportedAxisException
        Specified by:
        getDescendantAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getDescendantAxisIterator in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.UnsupportedAxisException
      • getAttributeAxisIterator

        public Iterator<?> getAttributeAxisIterator​(Object contextNode)
                                             throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the attribute XPath axis.
        Specified by:
        getAttributeAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getAttributeAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the attribute axis are not supported by this object model
      • getNamespaceAxisIterator

        public Iterator<?> getNamespaceAxisIterator​(Object contextNode)
                                             throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the namespace XPath axis.
        Specified by:
        getNamespaceAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getNamespaceAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the namespace axis are not supported by this object model
      • getSelfAxisIterator

        public Iterator<?> getSelfAxisIterator​(Object contextNode)
                                        throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the self xpath axis.
        Specified by:
        getSelfAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getSelfAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the self axis are not supported by this object model
      • getDescendantOrSelfAxisIterator

        public Iterator<?> getDescendantOrSelfAxisIterator​(Object contextNode)
                                                    throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the descendant-or-self XPath axis.
        Specified by:
        getDescendantOrSelfAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getDescendantOrSelfAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the descendant-or-self axis are not supported by this object model
      • getAncestorOrSelfAxisIterator

        public Iterator<?> getAncestorOrSelfAxisIterator​(Object contextNode)
                                                  throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the ancestor-or-self XPath axis.
        Specified by:
        getAncestorOrSelfAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getAncestorOrSelfAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the ancestor-or-self axis are not supported by this object model
      • getParentAxisIterator

        public Iterator<?> getParentAxisIterator​(Object contextNode)
                                          throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the parent XPath axis.
        Specified by:
        getParentAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getParentAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the parent axis are not supported by this object model
      • getAncestorAxisIterator

        public Iterator<?> getAncestorAxisIterator​(Object contextNode)
                                            throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the ancestor XPath axis.
        Specified by:
        getAncestorAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getAncestorAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the ancestor axis are not supported by this object model
      • getFollowingSiblingAxisIterator

        public Iterator<?> getFollowingSiblingAxisIterator​(Object contextNode)
                                                    throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the following-sibling XPath axis.
        Specified by:
        getFollowingSiblingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getFollowingSiblingAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the following-sibling axis are not supported by this object model
      • getPrecedingSiblingAxisIterator

        public Iterator<?> getPrecedingSiblingAxisIterator​(Object contextNode)
                                                    throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the preceding-sibling XPath axis.
        Specified by:
        getPrecedingSiblingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getPrecedingSiblingAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the preceding-sibling axis are not supported by this object model
      • getFollowingAxisIterator

        public Iterator<?> getFollowingAxisIterator​(Object contextNode)
                                             throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the following XPath axis.
        Specified by:
        getFollowingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getFollowingAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the following axis are not supported by this object model
      • getPrecedingAxisIterator

        public Iterator<?> getPrecedingAxisIterator​(Object contextNode)
                                             throws org.jaxen.UnsupportedAxisException
        Retrieves an Iterator matching the preceding XPath axis.
        Specified by:
        getPrecedingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getPrecedingAxisIterator in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the original context node
        Returns:
        Returns an Iterator capable of traversing the axis, not null.
        Throws:
        org.jaxen.UnsupportedAxisException - if the semantics of the preceding axis are not supported by this object model
      • getDocument

        public Object getDocument​(String uri)
                           throws org.jaxen.FunctionCallException
        Loads a document from the given URI.
        Specified by:
        getDocument in interface org.jaxen.Navigator
        Overrides:
        getDocument in class org.jaxen.DefaultNavigator
        Parameters:
        uri - the URI of the document to load
        Returns:
        Returns the document.
        Throws:
        org.jaxen.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 org.jaxen.Navigator
        Overrides:
        getElementById in class org.jaxen.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 org.jaxen.Navigator
        Overrides:
        getDocumentNode in class org.jaxen.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 org.jaxen.Navigator
        Overrides:
        translateNamespacePrefixToUri in class org.jaxen.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 org.jaxen.Navigator
        Overrides:
        getProcessingInstructionTarget in class org.jaxen.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 org.jaxen.Navigator
        Overrides:
        getProcessingInstructionData in class org.jaxen.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 org.jaxen.Navigator
        Overrides:
        getNodeType in class org.jaxen.DefaultNavigator
        Parameters:
        node - ????
        Returns:
        Returns short.
      • getParentNode

        public Object getParentNode​(Object contextNode)
                             throws org.jaxen.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 org.jaxen.Navigator
        Overrides:
        getParentNode in class org.jaxen.DefaultNavigator
        Parameters:
        contextNode - the context node
        Returns:
        Returns the parent of the context node, or null if this is a document node.
        Throws:
        org.jaxen.UnsupportedAxisException - if the parent axis is not supported by the model
        See Also:
        isDocument(java.lang.Object), isElement(java.lang.Object)