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. |
SequenceIterator |
getAnother()
Get another SequenceIterator that iterates over the same items as the original,
but which is repositioned 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 SequenceIterator getAnother()
- Description copied from interface:
SequenceIterator
- Get another SequenceIterator that iterates over the same items as the original,
but which is repositioned at the start of the sequence.
This method allows access to all the items in the sequence without disturbing the
current position of the iterator. Internally, its main use is in evaluating the last()
function.
This method does not change the state of the iterator.
- Specified by:
getAnother
in interface SequenceIterator
- Specified by:
getAnother
in interface UnfailingIterator
- Specified by:
getAnother
in class Navigator.BaseEnumeration
- Returns:
- a SequenceIterator that iterates over the same items,
positioned before the first item
Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.