Class SAX2DTM2.DescendantIterator

All Implemented Interfaces:
Cloneable, DTMAxisIterator
Direct Known Subclasses:
SAX2DTM2.TypedDescendantIterator
Enclosing class:
SAX2DTM2

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

    • DescendantIterator

      public DescendantIterator()
  • Method Details

    • setStartNode

      public DTMAxisIterator 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.
      Returns:
      A DTMAxisIterator set to the start of the iteration.
    • isDescendant

      protected final 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 DTMAxisIterator reset()
      Reset.
      Specified by:
      reset in interface DTMAxisIterator
      Overrides:
      reset in class DTMAxisIteratorBase
      Returns:
      A DTMAxisIterator which has been reset to the start node, which may or may not be the same as this iterator.