Class DTMDefaultBaseIterators.DescendantIterator

All Implemented Interfaces:
Cloneable, DTMAxisIterator
Enclosing class:
DTMDefaultBaseIterators

public class DTMDefaultBaseIterators.DescendantIterator extends DTMDefaultBaseIterators.InternalAxisIteratorBase
Iterator that returns the descendants of a given node.
  • Constructor Details

    • DescendantIterator

      public DescendantIterator()
  • Method Details

    • setStartNode

      public void setStartNode(int node)
      Set start to END should 'close' the iterator, i.e. subsequent call to next() should return END.
      Parameters:
      node - Sets the root of the iteration.
    • isDescendant

      protected boolean isDescendant(int identity)
      Tell if this node identity is a descendant. Assumes that the node info for the element has already been obtained.

      This one-sided test works only if the parent has been previously tested and is known to be a descendent. It fails if the parent is the _startNode's next sibling, or indeed any node that follows _startNode in document order. That may suffice for this iterator, but it's not really an isDescendent() test. %REVIEW% rename?

      Parameters:
      identity - The index number of the node in question.
      Returns:
      true if the index is a descendant of _startNode.
    • next

      public int next()
      Get the next node in the iteration.
      Returns:
      The next node handle in the iteration, or END.
    • reset

      public void reset()
      Resets the iterator to the last start node.
      Specified by:
      reset in interface DTMAxisIterator
      Overrides:
      reset in class DTMAxisIteratorBase