net.sf.saxon.om

Class Navigator.AncestorEnumeration

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

public static final class Navigator.AncestorEnumeration
extends Navigator.BaseEnumeration

General-purpose implementation of the ancestor and ancestor-or-self axes

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

AncestorEnumeration(NodeInfo start, boolean includeSelf)
Create an iterator over the ancestor or ancestor-or-self axis

Method Summary

void
advance()
The advance() method must be provided in each concrete implementation.
SequenceIterator
getAnother()
Get another iterator over the same sequence of items, positioned at the start of the sequence.

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

AncestorEnumeration

public AncestorEnumeration(NodeInfo start,
                           boolean includeSelf)
Create an iterator over the ancestor or ancestor-or-self axis
Parameters:
start - the initial context node
includeSelf - true if the "self" node is to be included

Method Details

advance

public void advance()
The advance() method must be provided in each concrete implementation. It must leave the variable current set to the next node to be returned in the iteration, or to null if there are no more nodes to be returned.
Overrides:
advance in interface Navigator.BaseEnumeration

getAnother

public SequenceIterator getAnother()
Get another iterator over the same sequence of items, positioned at the start of the sequence. It must be possible to call this method at any time, whether none, some, or all of the items in the original iterator have been read. The method is non-destructive: it does not change the state of the original iterator.
Specified by:
getAnother in interface UnfailingIterator
getAnother in interface SequenceIterator
Overrides:
getAnother in interface Navigator.BaseEnumeration
Returns:
a new iterator over the same sequence