public class ArrayIterator<T extends Item<?>> extends java.lang.Object implements UnfailingIterator<T>, LastPositionFinder, LookaheadIterator<T>, GroundedIterator<T>
Modifier and Type | Class and Description |
---|---|
static class |
ArrayIterator.OfNodes
ArrayIterator.OfNodes is a subclass of ArrayIterator where the array always
contains Nodes; it therefore implements the AxisIterator interface.
|
Modifier and Type | Field and Description |
---|---|
protected int |
end |
protected T[] |
items |
protected int |
start |
ATOMIZING, GROUNDED, LAST_POSITION_FINDER, LOOKAHEAD
Constructor and Description |
---|
ArrayIterator(T[] nodes)
Create an iterator over all the items in an array
|
ArrayIterator(T[] items,
int start,
int end)
Create an iterator over a range of an array.
|
Modifier and Type | Method and Description |
---|---|
T[] |
getArray()
Get the underlying array
|
int |
getEndPosition()
Get the end position in the array
|
int |
getLength()
Get the number of items in the part of the array being processed
|
int |
getProperties()
Get properties of this iterator, as a bit-significant integer.
|
GroundedValue<T> |
getResidue()
Return a GroundedValue containing all the remaining items in the sequence returned by this
SequenceIterator, starting at the current position.
|
int |
getStartPosition()
Get the initial start position
|
boolean |
hasNext()
Test whether there are any more items
|
SequenceIterator<T> |
makeSliceIterator(int min,
int max)
Create a new ArrayIterator over the same items,
with a different start point and end point
|
GroundedValue<T> |
materialize()
Return a SequenceValue containing all the items in the sequence returned by this
SequenceIterator
|
T |
next()
Get the next item in the array
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
firstWith, forEach, toGroundedValue, toList
close, forEachOrFail
public ArrayIterator(T[] nodes)
nodes
- the array (of any items, not necessarily nodes) to be
processed by the iteratorpublic ArrayIterator(T[] items, int start, int end)
items
- the array (of nodes or simple values) to be processed by
the iteratorstart
- the position of the first item to be processed
(numbering from zero). Must be between zero and nodes.length-1; if not,
undefined exceptions are likely to occur.end
- position of first item that is NOT returned, zero-based. Must be
beween 1 and nodes.length; if not, undefined exceptions are likely to occur.public SequenceIterator<T> makeSliceIterator(int min, int max)
min
- the start position (1-based) of the new ArrayIterator
relative to the originalmax
- the end position (1-based) of the last item to be delivered
by the new ArrayIterator, relative to the original. For example, min=2, max=3
delivers the two items ($base[2], $base[3]). Set this to Integer.MAX_VALUE if
there is no end limit.public boolean hasNext()
hasNext
in interface LookaheadIterator<T extends Item<?>>
public T next()
next
in interface SequenceIterator<T extends Item<?>>
next
in interface UnfailingIterator<T extends Item<?>>
public int getLength()
getLength
in interface LastPositionFinder
public T[] getArray()
public int getStartPosition()
public int getEndPosition()
public GroundedValue<T> materialize()
materialize
in interface SequenceIterator<T extends Item<?>>
materialize
in interface GroundedIterator<T extends Item<?>>
public GroundedValue<T> getResidue()
GroundedIterator
getResidue
in interface GroundedIterator<T extends Item<?>>
public int getProperties()
getProperties
in interface SequenceIterator<T extends Item<?>>
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.Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.