Package net.sf.saxon.tree.util

## Class Navigator.DescendantEnumeration

- java.lang.Object
- - net.sf.saxon.tree.util.Navigator.DescendantEnumeration

- All Implemented Interfaces:
    `java.io.Closeable`, `java.lang.AutoCloseable`, `SequenceIterator`, `AxisIterator`, `UnfailingIterator`
  Enclosing class:
    Navigator

      public static final class Navigator.DescendantEnumeration
      extends java.lang.Object
      implements AxisIterator

  General-purpose implementation of the descendant and descendant-or-self axes, in terms of the child axis. But it also has the option to return the descendants in reverse document order; this is used when evaluating the preceding axis. Note that the includeSelf option should not be used when scanning in reverse order, as the self node will always be returned first.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface net.sf.saxon.om.SequenceIterator

      `SequenceIterator.Property`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DescendantEnumeration​(NodeInfo start, boolean includeSelf, boolean forwards)` | Create an iterator over the descendant or descendant-or-self axis

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `advance()` |
    `NodeInfo` | `next()` | Get the next item in the sequence.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface net.sf.saxon.tree.iter.AxisIterator

      `asIterator, forEachNode`

    - ### Methods inherited from interface net.sf.saxon.om.SequenceIterator

      `close, forEachOrFail, getProperties, materialize`

    - ### Methods inherited from interface net.sf.saxon.tree.iter.UnfailingIterator

      `forEach, toList`

- - ### Constructor Detail

    - #### DescendantEnumeration

          public DescendantEnumeration​(NodeInfo start,
                                       boolean includeSelf,
                                       boolean forwards)

      Create an iterator over the descendant or descendant-or-self axis
      Parameters:
        `start` - the initial context node
        `includeSelf` - true if the "self" node is to be included
        `forwards` - true for a forwards iteration, false for reverse order

  - ### Method Detail

    - #### next

          public final NodeInfo next()

      Description copied from interface: `UnfailingIterator`
      Get the next item in the sequence.
      Specified by:
        `next` in interface `AxisIterator`
      Specified by:
        `next` in interface `SequenceIterator`
      Specified by:
        `next` in interface `UnfailingIterator`
      Returns:
        the next Item. If there are no more items, return null.

    - #### advance

          public void advance()