Class DomTripNavigator

java.lang.Object
org.jaxen.DefaultNavigator
eu.maveniverse.domtrip.jaxen.DomTripNavigator
All Implemented Interfaces:
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:
  • Constructor Details

    • DomTripNavigator

      public DomTripNavigator()
  • Method Details

    • getInstance

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

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

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

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

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

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

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

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

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

      public boolean isDocument(Object object)
    • isElement

      public boolean isElement(Object object)
    • isAttribute

      public boolean isAttribute(Object object)
    • isText

      public boolean isText(Object object)
    • isComment

      public boolean isComment(Object object)
    • isProcessingInstruction

      public boolean isProcessingInstruction(Object object)
    • isNamespace

      public boolean isNamespace(Object object)
    • getElementName

      public String getElementName(Object element)
    • getElementQName

      public String getElementQName(Object element)
    • getElementNamespaceUri

      public String getElementNamespaceUri(Object element)
    • getElementStringValue

      public String getElementStringValue(Object element)
    • getAttributeName

      public String getAttributeName(Object attr)
    • getAttributeQName

      public String getAttributeQName(Object attr)
    • getAttributeNamespaceUri

      public String getAttributeNamespaceUri(Object attr)
    • getAttributeStringValue

      public String getAttributeStringValue(Object attr)
    • getTextStringValue

      public String getTextStringValue(Object text)
    • getCommentStringValue

      public String getCommentStringValue(Object comment)
    • getProcessingInstructionTarget

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

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

      public String getNamespacePrefix(Object ns)
    • getNamespaceStringValue

      public String getNamespaceStringValue(Object ns)
    • translateNamespacePrefixToUri

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

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

      public Object getDocument(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 Object getElementById(Object contextNode, String elementId)
      Specified by:
      getElementById in interface org.jaxen.Navigator
      Overrides:
      getElementById in class org.jaxen.DefaultNavigator