public class SingletonIterator extends java.lang.Object implements AxisIterator, ReversibleIterator, LastPositionFinder, GroundedIterator, LookaheadIterator, AtomizableIterator
ATOMIZABLE, GROUNDED, LAST_POSITION_FINDER, LOOKAHEAD
Modifier and Type | Method and Description |
---|---|
Item |
current()
Get the current item in the sequence.
|
SequenceIterator |
getAnother()
Get another iterator over the same sequence of items, positioned at the
start of the sequence.
|
int |
getLastPosition()
Get the last position (that is, the number of items in the sequence).
|
int |
getProperties()
Get properties of this iterator, as a bit-significant integer.
|
SequenceIterator |
getReverseIterator()
Get a new SequenceIterator that returns the same items in reverse order.
|
Item |
getValue() |
boolean |
hasNext()
Determine whether there are more items to come.
|
static AxisIterator |
makeIterator(Item item)
Factory method.
|
Value |
materialize()
Return a Value containing all the items in the sequence returned by this
SequenceIterator
|
Item |
next()
Get the next item in the sequence.
|
int |
position()
Return the current position in the sequence.
|
void |
setIsAtomizing(boolean atomizing)
Indicate that any nodes returned in the sequence will be atomized.
|
public static AxisIterator makeIterator(Item item)
item
- the item to iterate overpublic boolean hasNext()
hasNext
in interface LookaheadIterator
public Item next()
AxisIterator
next
in interface AxisIterator
next
in interface SequenceIterator
public Item current()
AxisIterator
current
in interface AxisIterator
current
in interface SequenceIterator
public int position()
position
in interface AxisIterator
position
in interface SequenceIterator
public int getLastPosition()
LastPositionFinder
SequenceIterator.LAST_POSITION_FINDER
getLastPosition
in interface LastPositionFinder
public SequenceIterator getAnother()
AxisIterator
getAnother
in interface AxisIterator
getAnother
in interface SequenceIterator
public SequenceIterator getReverseIterator()
ReversibleIterator
getReverseIterator
in interface ReversibleIterator
public Item getValue()
public Value materialize()
materialize
in interface GroundedIterator
public void setIsAtomizing(boolean atomizing)
This implementation attempts atomization of a singleton node if it is untyped. This avoids adding an iterator to iterate over the value in the common case where the typed value of the node is a single atomic value.
setIsAtomizing
in interface AtomizableIterator
atomizing
- true if the caller of this iterator will atomize any
nodes that are returned, and is therefore willing to accept the typed
value of the nodes instead of the nodes themselves.public int getProperties()
getProperties
in interface SequenceIterator
SequenceIterator.GROUNDED
, SequenceIterator.LAST_POSITION_FINDER
,
and SequenceIterator.LOOKAHEAD
. It is always
acceptable to return the value zero, indicating that there are no known special properties.
It is acceptable for the properties of the iterator to change depending on its state.