Class BasicTestIterator

All Implemented Interfaces:
Serializable, Cloneable, SourceLocator, DTMIterator, PathComponent, SubContextList, ExpressionNode, XPathVisitable
Direct Known Subclasses:
ChildTestIterator, FilterExprIterator

public abstract class BasicTestIterator
extends LocPathIterator
Base for iterators that handle predicates. Does the basic next node logic, so all the derived iterator has to do is get the next node.
See Also:
Serialized Form
  • Constructor Details

    • BasicTestIterator

      protected BasicTestIterator()
      Create a LocPathIterator object.
      Parameters:
      nscontext - The namespace context for this iterator, should be OK if null.
    • BasicTestIterator

      protected BasicTestIterator​(PrefixResolver nscontext)
      Create a LocPathIterator object.
      Parameters:
      nscontext - The namespace context for this iterator, should be OK if null.
    • BasicTestIterator

      protected BasicTestIterator​(Compiler compiler, int opPos, int analysis) throws TransformerException
      Create a LocPathIterator object, including creation of step walkers from the opcode list, and call back into the Compiler to create predicate expressions.
      Parameters:
      compiler - The Compiler which is creating this expression.
      opPos - The position of this iterator in the opcode list from the compiler.
      Throws:
      TransformerException
    • BasicTestIterator

      protected BasicTestIterator​(Compiler compiler, int opPos, int analysis, boolean shouldLoadWalkers) throws TransformerException
      Create a LocPathIterator object, including creation of step walkers from the opcode list, and call back into the Compiler to create predicate expressions.
      Parameters:
      compiler - The Compiler which is creating this expression.
      opPos - The position of this iterator in the opcode list from the compiler.
      shouldLoadWalkers - True if walkers should be loaded, or false if this is a derived iterator and it doesn't wish to load child walkers.
      Throws:
      TransformerException
  • Method Details

    • getNextNode

      protected abstract int getNextNode()
      Get the next node via getNextXXX. Bottlenecked for derived class override.
      Returns:
      The next node on the axis, or DTM.NULL.
    • nextNode

      public int nextNode()
      Returns the next node in the set and advances the position of the iterator in the set. After a NodeIterator is created, the first call to nextNode() returns the first node in the set.
      Specified by:
      nextNode in interface DTMIterator
      Specified by:
      nextNode in class LocPathIterator
      Returns:
      The next Node in the set being iterated over, or null if there are no more members in that set.
    • cloneWithReset

      public DTMIterator cloneWithReset() throws CloneNotSupportedException
      Get a cloned Iterator that is reset to the beginning of the query.
      Specified by:
      cloneWithReset in interface DTMIterator
      Overrides:
      cloneWithReset in class LocPathIterator
      Returns:
      A cloned NodeIterator set of the start of the query.
      Throws:
      CloneNotSupportedException