Class ReverseAxesWalker

All Implemented Interfaces:
Serializable, Cloneable, SourceLocator, PathComponent, SubContextList, ExpressionNode, ExpressionOwner, XPathVisitable

public class ReverseAxesWalker
extends AxesWalker
Walker for a reverse axes.
See Also:
XPath 2.4 Predicates, Serialized Form
  • Field Details

    • m_iterator

      protected DTMAxisIterator m_iterator
      The DTM inner traversal class, that corresponds to the super axis.
  • Method Details

    • setRoot

      public void setRoot​(int root)
      Set the root node of the TreeWalker. (Not part of the DOM2 TreeWalker interface).
      Overrides:
      setRoot in class AxesWalker
      Parameters:
      root - The context node of this step.
    • 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.
      Overrides:
      detach in class AxesWalker
    • getNextNode

      protected int getNextNode()
      Get the next node in document order on the axes.
      Overrides:
      getNextNode in class AxesWalker
      Returns:
      the next node in document order on the axes, or null.
    • isReverseAxes

      public boolean isReverseAxes()
      Tells if this is a reverse axes. Overrides AxesWalker#isReverseAxes.
      Overrides:
      isReverseAxes in class PredicatedNodeTest
      Returns:
      true for this class.
    • getProximityPosition

      protected int getProximityPosition​(int predicateIndex)
      Get the current sub-context position. In order to do the reverse axes count, for the moment this re-searches the axes up to the predicate. An optimization on this is to cache the nodes searched, but, for the moment, this case is probably rare enough that the added complexity isn't worth it.
      Overrides:
      getProximityPosition in class PredicatedNodeTest
      Parameters:
      predicateIndex - The predicate index of the proximity position.
      Returns:
      The pridicate index, or -1.
    • countProximityPosition

      protected void countProximityPosition​(int i)
      Count backwards one proximity position.
      Overrides:
      countProximityPosition in class PredicatedNodeTest
      Parameters:
      i - The predicate index.
    • getLastPos

      public int getLastPos​(XPathContext xctxt)
      Get the number of nodes in this node list. The function is probably ill named?
      Specified by:
      getLastPos in interface SubContextList
      Overrides:
      getLastPos in class AxesWalker
      Parameters:
      xctxt - The XPath runtime context.
      Returns:
      the number of nodes in this node list.
    • 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!
      Overrides:
      isDocOrdered in class AxesWalker
      Returns:
      false.