net.sf.saxon.tree.util
Class Navigator.DescendantEnumeration
java.lang.Object
net.sf.saxon.tree.iter.AxisIteratorImpl
net.sf.saxon.tree.util.Navigator.BaseEnumeration
net.sf.saxon.tree.util.Navigator.DescendantEnumeration
- All Implemented Interfaces:
- SequenceIterator, AxisIterator, UnfailingIterator
- Enclosing class:
- Navigator
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.
Method Summary |
void |
advance()
The advance() method must be provided in each concrete implementation. |
AxisIterator |
getAnother()
Get another iterator over the same sequence of items, positioned at the
start of the sequence. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Navigator.DescendantEnumeration
public Navigator.DescendantEnumeration(NodeInfo start,
boolean includeSelf,
boolean forwards)
- Create an iterator over the descendant or descendant-or-self axis
- Parameters:
start
- the initial context nodeincludeSelf
- true if the "self" node is to be includedforwards
- true for a forwards iteration, false for reverse order
advance
public void advance()
- Description copied from class:
Navigator.BaseEnumeration
- 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.
- Specified by:
advance
in class Navigator.BaseEnumeration
getAnother
public AxisIterator getAnother()
- Description copied from interface:
UnfailingIterator
- 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 SequenceIterator
- Specified by:
getAnother
in interface AxisIterator
- Specified by:
getAnother
in interface UnfailingIterator
- Specified by:
getAnother
in class Navigator.BaseEnumeration
- Returns:
- a new iterator over the same sequence
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.