Package net.sf.saxon.tree.iter
Class ArrayIterator.Of<T extends Item>
- java.lang.Object
-
- net.sf.saxon.tree.iter.ArrayIterator
-
- net.sf.saxon.tree.iter.ArrayIterator.Of<T>
-
- Type Parameters:
T
- the item type of the items returned by the ArrayIterator
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,LastPositionFinder
,SequenceIterator
,GroundedIterator
,LookaheadIterator
,ReversibleIterator
- Direct Known Subclasses:
ArrayIterator.OfNodes
- Enclosing class:
- ArrayIterator
public static class ArrayIterator.Of<T extends Item> extends ArrayIterator
Parameterised subclass to accept items of a particular item type
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.sf.saxon.tree.iter.ArrayIterator
ArrayIterator.Of<T extends Item>, ArrayIterator.OfNodes<N extends NodeInfo>
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description T[]
getArray()
Get the underlying arrayint
getEndPosition()
Get the end position in the arrayint
getLength()
Get the number of items in the part of the array being processedGroundedValue
getResidue()
Return a GroundedValue containing all the remaining items in the sequence returned by this SequenceIterator, starting at the current position.SequenceIterator
getReverseIterator()
Get a new SequenceIterator that returns the same items in reverse order.int
getStartPosition()
Get the initial start positionboolean
hasNext()
Test whether there are any more itemsSequenceIterator
makeSliceIterator(int min, int max)
Create a new ArrayIterator over the same items, with a different start point and end pointGroundedValue
materialize()
Return a SequenceValue containing all the items in the sequence returned by this SequenceIteratorItem
next()
Get the next item in the arrayboolean
supportsGetLength()
Ask whether this iterator supports use of theLastPositionFinder.getLength()
method.-
Methods inherited from class net.sf.saxon.tree.iter.ArrayIterator
isActuallyGrounded, supportsHasNext
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.sf.saxon.om.SequenceIterator
close, discharge
-
-
-
-
Constructor Detail
-
Of
public Of(T[] items)
-
Of
public Of(T[] items, int start, int end)
Create an iterator over a range of an array. Note that the start position is zero-based- Parameters:
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 between 1 and nodes.length; if not, undefined exceptions are likely to occur.
-
-
Method Detail
-
makeSliceIterator
public SequenceIterator makeSliceIterator(int min, int max)
Create a new ArrayIterator over the same items, with a different start point and end point- Specified by:
makeSliceIterator
in classArrayIterator
- Parameters:
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.- Returns:
- an iterator over the items between the min and max positions
-
hasNext
public boolean hasNext()
Test whether there are any more items- Returns:
- true if there are more items
-
next
public Item next()
Get the next item in the array- Returns:
- the next item in the array
-
supportsGetLength
public boolean supportsGetLength()
Description copied from interface:LastPositionFinder
Ask whether this iterator supports use of theLastPositionFinder.getLength()
method. This method should always be called before callingLastPositionFinder.getLength()
, because an iterator that implements this interface may support use ofLastPositionFinder.getLength()
in some situations and not in others- Returns:
- true if the
LastPositionFinder.getLength()
method can be called to determine the length of the underlying sequence.
-
getLength
public int getLength()
Get the number of items in the part of the array being processed- Returns:
- the number of items; equivalently, the position of the last item
-
getArray
public T[] getArray()
Get the underlying array- Returns:
- the underlying array being processed by the iterator
-
getStartPosition
public int getStartPosition()
Get the initial start position- Returns:
- the start position of the iterator in the array (zero-based)
-
getEndPosition
public int getEndPosition()
Get the end position in the array- Returns:
- the position in the array (zero-based) of the first item not included in the iteration
-
materialize
public GroundedValue materialize()
Return a SequenceValue containing all the items in the sequence returned by this SequenceIterator- Returns:
- the corresponding SequenceValue
-
getResidue
public GroundedValue getResidue()
Description copied from interface:GroundedIterator
Return a GroundedValue containing all the remaining items in the sequence returned by this SequenceIterator, starting at the current position. This should be an "in-memory" value, not a Closure. This method does not change the state of the iterator (in particular, it does not consume the iterator).- Returns:
- the corresponding Value
-
getReverseIterator
public SequenceIterator getReverseIterator()
Description copied from interface:ReversibleIterator
Get a new SequenceIterator that returns the same items in reverse order. If this SequenceIterator is an AxisIterator, then the returned SequenceIterator must also be an AxisIterator.- Returns:
- an iterator over the items in reverse order
-
-