Class DomTripNavigator

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

    public class DomTripNavigator
    extends org.jaxen.DefaultNavigator
    Jaxen Navigator implementation for the DomTrip XML object model.

    This navigator enables full XPath 1.0 evaluation against DomTrip's lossless XML tree. It maps DomTrip's node types (Element, Text, Comment, ProcessingInstruction, Document) to Jaxen's expected navigation model.

    Since DomTrip's Attribute class does not extend Node and does not store a parent reference, this navigator uses AttributeNode wrappers on the attribute axis. Similarly, NamespaceNode wrappers represent namespace declarations on the namespace axis.

    Usage:

    
     Navigator nav = DomTripNavigator.getInstance();
     DomTripXPath xpath = new DomTripXPath("//dependency[@scope='test']");
     List results = xpath.selectNodes(root);
     
    Since:
    1.3.0
    See Also:
    DomTripXPath, XPath, Serialized Form
    • Constructor Detail

      • DomTripNavigator

        public DomTripNavigator()
    • Method Detail

      • getInstance

        public static org.jaxen.Navigator getInstance()
        Returns the singleton navigator instance.
        Returns:
        the shared DomTripNavigator
      • getChildAxisIterator

        public java.util.Iterator getChildAxisIterator​(java.lang.Object contextNode)
        Specified by:
        getChildAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getChildAxisIterator in class org.jaxen.DefaultNavigator
      • getParentAxisIterator

        public java.util.Iterator getParentAxisIterator​(java.lang.Object contextNode)
        Specified by:
        getParentAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getParentAxisIterator in class org.jaxen.DefaultNavigator
      • getParentNode

        public java.lang.Object getParentNode​(java.lang.Object contextNode)
        Specified by:
        getParentNode in interface org.jaxen.Navigator
        Overrides:
        getParentNode in class org.jaxen.DefaultNavigator
      • getFollowingSiblingAxisIterator

        public java.util.Iterator getFollowingSiblingAxisIterator​(java.lang.Object contextNode)
        Specified by:
        getFollowingSiblingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getFollowingSiblingAxisIterator in class org.jaxen.DefaultNavigator
      • getPrecedingSiblingAxisIterator

        public java.util.Iterator getPrecedingSiblingAxisIterator​(java.lang.Object contextNode)
        Specified by:
        getPrecedingSiblingAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getPrecedingSiblingAxisIterator in class org.jaxen.DefaultNavigator
      • getAttributeAxisIterator

        public java.util.Iterator getAttributeAxisIterator​(java.lang.Object contextNode)
        Specified by:
        getAttributeAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getAttributeAxisIterator in class org.jaxen.DefaultNavigator
      • getNamespaceAxisIterator

        public java.util.Iterator getNamespaceAxisIterator​(java.lang.Object contextNode)
        Specified by:
        getNamespaceAxisIterator in interface org.jaxen.Navigator
        Overrides:
        getNamespaceAxisIterator in class org.jaxen.DefaultNavigator
      • getDocumentNode

        public java.lang.Object getDocumentNode​(java.lang.Object contextNode)
        Specified by:
        getDocumentNode in interface org.jaxen.Navigator
        Overrides:
        getDocumentNode in class org.jaxen.DefaultNavigator
      • isDocument

        public boolean isDocument​(java.lang.Object object)
      • isElement

        public boolean isElement​(java.lang.Object object)
      • isAttribute

        public boolean isAttribute​(java.lang.Object object)
      • isText

        public boolean isText​(java.lang.Object object)
      • isComment

        public boolean isComment​(java.lang.Object object)
      • isProcessingInstruction

        public boolean isProcessingInstruction​(java.lang.Object object)
      • isNamespace

        public boolean isNamespace​(java.lang.Object object)
      • getElementName

        public java.lang.String getElementName​(java.lang.Object element)
      • getElementQName

        public java.lang.String getElementQName​(java.lang.Object element)
      • getElementNamespaceUri

        public java.lang.String getElementNamespaceUri​(java.lang.Object element)
      • getElementStringValue

        public java.lang.String getElementStringValue​(java.lang.Object element)
      • getAttributeName

        public java.lang.String getAttributeName​(java.lang.Object attr)
      • getAttributeQName

        public java.lang.String getAttributeQName​(java.lang.Object attr)
      • getAttributeNamespaceUri

        public java.lang.String getAttributeNamespaceUri​(java.lang.Object attr)
      • getAttributeStringValue

        public java.lang.String getAttributeStringValue​(java.lang.Object attr)
      • getTextStringValue

        public java.lang.String getTextStringValue​(java.lang.Object text)
      • getCommentStringValue

        public java.lang.String getCommentStringValue​(java.lang.Object comment)
      • getProcessingInstructionTarget

        public java.lang.String getProcessingInstructionTarget​(java.lang.Object pi)
        Specified by:
        getProcessingInstructionTarget in interface org.jaxen.Navigator
        Overrides:
        getProcessingInstructionTarget in class org.jaxen.DefaultNavigator
      • getProcessingInstructionData

        public java.lang.String getProcessingInstructionData​(java.lang.Object pi)
        Specified by:
        getProcessingInstructionData in interface org.jaxen.Navigator
        Overrides:
        getProcessingInstructionData in class org.jaxen.DefaultNavigator
      • getNamespacePrefix

        public java.lang.String getNamespacePrefix​(java.lang.Object ns)
      • getNamespaceStringValue

        public java.lang.String getNamespaceStringValue​(java.lang.Object ns)
      • translateNamespacePrefixToUri

        public java.lang.String translateNamespacePrefixToUri​(java.lang.String prefix,
                                                              java.lang.Object context)
        Specified by:
        translateNamespacePrefixToUri in interface org.jaxen.Navigator
        Overrides:
        translateNamespacePrefixToUri in class org.jaxen.DefaultNavigator
      • parseXPath

        public org.jaxen.XPath parseXPath​(java.lang.String xpath)
                                   throws org.jaxen.saxpath.SAXPathException
        Throws:
        org.jaxen.saxpath.SAXPathException
      • getDocument

        public java.lang.Object getDocument​(java.lang.String uri)
                                     throws org.jaxen.FunctionCallException
        Specified by:
        getDocument in interface org.jaxen.Navigator
        Overrides:
        getDocument in class org.jaxen.DefaultNavigator
        Throws:
        org.jaxen.FunctionCallException
      • getElementById

        public java.lang.Object getElementById​(java.lang.Object contextNode,
                                               java.lang.String elementId)
        Specified by:
        getElementById in interface org.jaxen.Navigator
        Overrides:
        getElementById in class org.jaxen.DefaultNavigator