Class AxesWalker

    • Constructor Detail

      • AxesWalker

        public AxesWalker​(LocPathIterator locPathIterator,
                          int axis)
        Construct an AxesWalker using a LocPathIterator.
        Parameters:
        locPathIterator - non-null reference to the parent iterator.
    • Method Detail

      • init

        public void init​(Compiler compiler,
                         int opPos,
                         int stepType)
                  throws javax.xml.transform.TransformerException
        Initialize an AxesWalker during the parse of the XPath expression.
        Parameters:
        compiler - The Compiler object that has information about this walker in the op map.
        opPos - The op code position of this location step.
        stepType - The type of location step.
        Throws:
        javax.xml.transform.TransformerException
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Get a cloned AxesWalker.
        Overrides:
        clone in class PredicatedNodeTest
        Returns:
        A new AxesWalker that can be used without mutating this one.
        Throws:
        java.lang.CloneNotSupportedException
      • detach

        public void detach()
        Detaches the walker from the set which it iterated over, releasing any computational resources and placing the iterator in the INVALID state.
      • getRoot

        public int getRoot()
        The root node of the TreeWalker, as specified in setRoot(int root). Note that this may actually be below the current node.
        Returns:
        The context node of the step.
      • getAnalysisBits

        public int getAnalysisBits()
        Get the analysis bits for this walker, as defined in the WalkerFactory.
        Specified by:
        getAnalysisBits in interface PathComponent
        Returns:
        One of WalkerFactory#BIT_DESCENDANT, etc.
      • setRoot

        public void setRoot​(int root)
        Set the root node of the TreeWalker. (Not part of the DOM2 TreeWalker interface).
        Parameters:
        root - The context node of this step.
      • getCurrentNode

        public final int getCurrentNode()
        The node at which the TreeWalker is currently positioned.
        The value must not be null. Alterations to the DOM tree may cause the current node to no longer be accepted by the TreeWalker's associated filter. currentNode may also be explicitly set to any node, whether or not it is within the subtree specified by the root node or would be accepted by the filter and whatToShow flags. Further traversal occurs relative to currentNode even if it is not part of the current view by applying the filters in the requested direction (not changing currentNode where no traversal is possible).
        Returns:
        The node at which the TreeWalker is currently positioned, only null if setRoot has not yet been called.
      • setNextWalker

        public void setNextWalker​(AxesWalker walker)
        Set the next walker in the location step chain.
        Parameters:
        walker - Reference to AxesWalker derivative, or may be null.
      • getNextWalker

        public AxesWalker getNextWalker()
        Get the next walker in the location step chain.
        Returns:
        Reference to AxesWalker derivative, or null.
      • setPrevWalker

        public void setPrevWalker​(AxesWalker walker)
        Set or clear the previous walker reference in the location step chain.
        Parameters:
        walker - Reference to previous walker reference in the location step chain, or null.
      • getPrevWalker

        public AxesWalker getPrevWalker()
        Get the previous walker reference in the location step chain.
        Returns:
        Reference to previous walker reference in the location step chain, or null.
      • nextNode

        public int nextNode()
        Moves the TreeWalker to the next visible node in document order relative to the current node, and returns the new node. If the current node has no next node, or if the search for nextNode attempts to step upward from the TreeWalker's root node, returns null , and retains the current node.
        Returns:
        The new node, or null if the current node has no next node in the TreeWalker's logical view.
      • getLastPos

        public int getLastPos​(XPathContext xctxt)
        Get the index of the last node that can be itterated to.
        Specified by:
        getLastPos in interface SubContextList
        Specified by:
        getLastPos in class PredicatedNodeTest
        Parameters:
        xctxt - XPath runtime context.
        Returns:
        the index of the last node that can be itterated to.
      • setDefaultDTM

        public void setDefaultDTM​(DTM dtm)
        Set the DTM for this walker.
        Parameters:
        dtm - Non-null reference to a DTM.
      • getDTM

        public DTM getDTM​(int node)
        Get the DTM for this walker.
        Returns:
        Non-null reference to a DTM.
      • isDocOrdered

        public boolean isDocOrdered()
        Returns true if all the nodes in the iteration well be returned in document order. Warning: This can only be called after setRoot has been called!
        Returns:
        true as a default.
      • getAxis

        public int getAxis()
        Returns the axis being iterated, if it is known.
        Returns:
        Axis.CHILD, etc., or -1 if the axis is not known or is of multiple types.
      • deepEquals

        public boolean deepEquals​(Expression expr)
        Description copied from class: Expression
        Compare this object with another object and see if they are equal, include the sub heararchy.
        Overrides:
        deepEquals in class PredicatedNodeTest
        Parameters:
        expr - Another expression object.
        Returns:
        true if this objects class and the expr object's class are the same, and the data contained within both objects are considered equal.
        See Also:
        Expression.deepEquals(Expression)