net.sf.saxon.om

Class Navigator.DescendantEnumeration

Enclosing Class:
Navigator
Implemented Interfaces:
AxisIterator, SequenceIterator, UnfailingIterator

public static final class Navigator.DescendantEnumeration
extends Navigator.BaseEnumeration

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.

Field Summary

Fields inherited from class net.sf.saxon.om.AxisIteratorImpl

current, position

Fields inherited from interface net.sf.saxon.om.SequenceIterator

GROUNDED, LAST_POSITION_FINDER, LOOKAHEAD

Constructor Summary

DescendantEnumeration(NodeInfo start, boolean includeSelf, boolean forwards)
Create an iterator over the descendant or descendant-or-self axis

Method Summary

void
advance()
SequenceIterator
getAnother()

Methods inherited from class net.sf.saxon.om.Navigator.BaseEnumeration

advance, getAnother, next

Methods inherited from class net.sf.saxon.om.AxisIteratorImpl

atomize, current, getProperties, getStringValue, iterateAxis, moveNext, position

Constructor Details

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 Details

advance

public void advance()
Overrides:
advance in interface Navigator.BaseEnumeration

getAnother

public SequenceIterator getAnother()
Specified by:
getAnother in interface UnfailingIterator
getAnother in interface SequenceIterator
Overrides:
getAnother in interface Navigator.BaseEnumeration