net.sf.saxon.om
Class Navigator.BaseEnumeration
java.lang.Object
net.sf.saxon.om.AxisIteratorImpl
net.sf.saxon.om.Navigator.BaseEnumeration
- All Implemented Interfaces:
- AxisIterator, SequenceIterator, UnfailingIterator
- Direct Known Subclasses:
- Navigator.AncestorEnumeration, Navigator.DescendantEnumeration, Navigator.FollowingEnumeration, Navigator.PrecedingEnumeration
- Enclosing class:
- Navigator
public abstract static class Navigator.BaseEnumeration
- extends AxisIteratorImpl
BaseEnumeration is an abstract implementation of an AxisIterator, it
simplifies the implementation of the underlying AxisIterator by requiring
it to provide only two methods: advance(), and getAnother().
NOTA BENE: BaseEnumeration does not maintain the value of the position variable.
It must therefore either (a) be wrapped in an AxisFilter, which does maintain
position, or (b) be subclassed by a class that maintains position itself.
Method Summary |
abstract void |
advance()
The advance() method must be provided in each concrete implementation. |
abstract SequenceIterator |
getAnother()
Get another SequenceIterator that iterates over the same items as the original,
but which is repositioned at the start of the sequence. |
Item |
next()
Get the next item in the sequence. |
Navigator.BaseEnumeration
public Navigator.BaseEnumeration()
next
public final Item next()
- Description copied from interface:
SequenceIterator
- Get the next item in the sequence. This method changes the state of the
iterator, in particular it affects the result of subsequent calls of
position() and current().
- Returns:
- the next item, or null if there are no more items. Once a call
on next() has returned null, no further calls should be made. The preferred
action for an iterator if subsequent calls on next() are made is to return
null again, and all implementations within Saxon follow this rule.
advance
public abstract 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.
getAnother
public abstract 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.
- Returns:
- a SequenceIterator that iterates over the same items,
positioned before the first item
Copyright (C) Michael H. Kay. All rights reserved.