public class SequenceExtent<T extends Item<?>> extends java.lang.Object implements GroundedValue<T>
Constructor and Description |
---|
SequenceExtent(java.util.List<T> list)
Construct a SequenceExtent from a List.
|
SequenceExtent(SequenceExtent<T> ext,
int start,
int length)
Construct a SequenceExtent as a view of another SequenceExtent
|
SequenceExtent(SequenceIterator<T> iter)
Construct a sequence containing all the remaining items in a SequenceIterator.
|
SequenceExtent(T[] items)
Construct an sequence from an array of items.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Iterable<T> |
asIterable()
Get the contents of this value in the form of a Java
Iterable ,
so that it can be used in a for-each expression |
boolean |
effectiveBooleanValue()
Get the effective boolean value
|
static <T extends Item<?>> |
fromIterator(SequenceIterator<T> iter)
Deprecated.
since 9.9: use
SequenceIterator.materialize() |
int |
getCardinality()
Determine the cardinality
|
int |
getLength()
Get the number of items in the sequence
|
java.lang.String |
getStringValue()
Get the string value of this sequence.
|
java.lang.CharSequence |
getStringValueCS()
Get the string value of this sequence.
|
T |
head()
Get the first item in the sequence.
|
T |
itemAt(int n)
Get the n'th item in the sequence (starting with 0 as the first item)
|
ListIterator<T> |
iterate()
Return an iterator over this sequence.
|
java.util.Iterator<T> |
iterator()
Get an iterator (a Java
Iterator ) over the items in this sequence. |
static <T extends Item<?>> |
makeResidue(SequenceIterator<T> iter)
Factory method to make a GroundedValue holding the remaining contents of any SequenceIterator,
that is, the contents that have not yet been read
|
static <T extends Item<?>> |
makeSequenceExtent(java.util.List<T> input)
Factory method to make a Value holding the contents of any List of items
|
static <T extends Item<?>> |
makeSequenceExtent(SequenceIterator<T> iter)
Deprecated.
since 9.9: use
SequenceIterator.materialize() |
GroundedValue<T> |
reduce()
Reduce the sequence to its simplest form.
|
UnfailingIterator<T> |
reverseIterate()
Return an enumeration of this sequence in reverse order (used for reverse axes)
|
GroundedValue<T> |
subsequence(int start,
int length)
Get a subsequence of the value
|
java.lang.String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
materialize, toShortString
makeRepeatable
public SequenceExtent(T[] items)
items
- the array of items to be included in the sequencepublic SequenceExtent(SequenceExtent<T> ext, int start, int length)
ext
- The existing SequenceExtentstart
- zero-based offset of the first item in the existing SequenceExtent
that is to be included in the new SequenceExtentlength
- The number of items in the new SequenceExtentpublic SequenceExtent(java.util.List<T> list)
list
- the list of items to be included in the sequencepublic SequenceExtent(SequenceIterator<T> iter) throws XPathException
iter
- The supplied sequence of items. The returned sequence will contain all
items delivered by repeated calls on next() on this iterator, and the
iterator will be consumed by calling the method.XPathException
- if reading the items using the
SequenceIterator raises an errorpublic static <T extends Item<?>> GroundedValue<? extends T> makeSequenceExtent(SequenceIterator<T> iter) throws XPathException
SequenceIterator.materialize()
iter
- a Sequence iterator that may or may not be consumed to deliver the items in the sequence.
The iterator must be positioned at the start.EmptySequence
. If it is of length
one, the result will be an Item
. In all other cases, it will be an instance of
SequenceExtent
.XPathException
- if an error occurs processing the values from
the iterator.public static <T extends Item<?>> GroundedValue<T> fromIterator(SequenceIterator<T> iter) throws XPathException
SequenceIterator.materialize()
iter
- a Sequence iterator that may or may not be consumed to deliver the items in the sequence.
The iterator must be positioned at the start.EmptySequence
. If it is of length
one, the result will be an Item
. In other cases, the actual implementation class
is not defined.
This method is intended primarily for internal use. For external applications, calling
SequenceIterator.materialize()
is preferable, because it recognizes cases that can
be optimized (notably, cases where the iterator is already backed by an array or list in memory).
XPathException
- if an error occurs processing the values from
the iterator.public static <T extends Item<?>> GroundedValue<T> makeResidue(SequenceIterator<T> iter) throws XPathException
iter
- a Sequence iterator that may or may not be consumed to deliver the items in the sequence.
The iterator need not be positioned at the start.EmptySequence
. If it is of length
one, the result will be an Item
. In all other cases, it will be an instance of
SequenceExtent
.XPathException
- if an error occurs processing the values from
the iterator.public static <T extends Item<?>> GroundedValue<T> makeSequenceExtent(java.util.List<T> input)
input
- a List containing the items in the sequenceEmptySequence
. If it is of length
one, the result will be an Item
. In all other cases, it will be an instance of
SequenceExtent
.public java.lang.String getStringValue() throws XPathException
GroundedValue
getStringValue
in interface GroundedValue<T extends Item<?>>
XPathException
- if the sequence contains items that have no string value (for example, function items)public java.lang.CharSequence getStringValueCS() throws XPathException
GroundedValue
getStringValueCS
in interface GroundedValue<T extends Item<?>>
XPathException
- if the sequence contains items that have no string value (for example, function items)public T head()
public int getLength()
getLength
in interface GroundedValue<T extends Item<?>>
public int getCardinality()
Cardinality
public T itemAt(int n)
itemAt
in interface GroundedValue<T extends Item<?>>
n
- the position of the required itempublic ListIterator<T> iterate()
public UnfailingIterator<T> reverseIterate()
public boolean effectiveBooleanValue() throws XPathException
effectiveBooleanValue
in interface GroundedValue<T extends Item<?>>
XPathException
- if the sequence has no effective boolean value (for example a sequence of two integers)public GroundedValue<T> subsequence(int start, int length)
subsequence
in interface GroundedValue<T extends Item<?>>
start
- the index of the first item to be included in the result, counting from zero.
A negative value is taken as zero. If the value is beyond the end of the sequence, an empty
sequence is returnedlength
- the number of items to be included in the result. Specify Integer.MAX_VALUE to
get the subsequence up to the end of the base sequence. If the value is negative, an empty sequence
is returned. If the value goes off the end of the sequence, the result returns items up to the end
of the sequencepublic java.lang.String toString()
toString
in class java.lang.Object
public GroundedValue<T> reduce()
reduce
in interface GroundedValue<T extends Item<?>>
public java.lang.Iterable<T> asIterable()
Iterable
,
so that it can be used in a for-each expressionasIterable
in interface GroundedValue<T extends Item<?>>
asIterable
in interface Sequence<T extends Item<?>>
public java.util.Iterator<T> iterator()
Iterator
) over the items in this sequence.Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.