public class SequenceExtent<T extends Item> extends Object implements GroundedValue
Constructor and Description |
---|
SequenceExtent(List<? extends 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 items in a SequenceIterator.
|
SequenceExtent(T[] items)
Construct an sequence from an array of items.
|
SequenceExtent(T[] value,
int start,
int length)
Construct a SequenceExtent from part of an array of items
|
Modifier and Type | Method and Description |
---|---|
boolean |
effectiveBooleanValue()
Get the effective boolean value
|
int |
getCardinality()
Determine the cardinality
|
ItemType |
getItemType(TypeHierarchy th)
Get the (lowest common) item type
|
int |
getLength()
Get the number of items in the sequence
|
String |
getStringValue()
Get the string value of this sequence.
|
CharSequence |
getStringValueCS()
Get the string value of this sequence.
|
Item |
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)
|
ArrayIterator<T> |
iterate()
Return an iterator over this sequence.
|
static <T extends Item> |
makeSequenceExtent(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)
Factory method to make a Value holding the contents of any SequenceIterator
|
GroundedValue |
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 |
subsequence(int start,
int length)
Get a subsequence of the value
|
void |
swap(int a,
int b)
Swap two items (needed to support sorting)
|
String |
toString() |
public SequenceExtent(T[] items)
items
- the array of items to be included in the sequencepublic SequenceExtent(T[] value, int start, int length)
value
- The arraystart
- zero-based offset of the first item in the array
that is to be included in the new SequenceExtentlength
- The number of items in the new SequenceExtentpublic 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(List<? extends 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. This must be positioned at
the start, so that hasNext() returns true if there are any nodes in
the node-set, and next() returns the first node.XPathException
- if reading the items using the
SequenceIterator raises an errorpublic static <T extends Item> GroundedValue makeSequenceExtent(SequenceIterator<T> iter) throws XPathException
iter
- a Sequence iterator that will be consumed to deliver 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
.XPathException
- if an error occurs processing the values from
the iterator.public static <T extends Item> Sequence makeSequenceExtent(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 String getStringValue() throws XPathException
GroundedValue
getStringValue
in interface GroundedValue
XPathException
- if the sequence contains items that have no string value (for example, function items)public CharSequence getStringValueCS() throws XPathException
GroundedValue
getStringValueCS
in interface GroundedValue
XPathException
- if the sequence contains items that have no string value (for example, function items)public Item head() throws XPathException
head
in interface Sequence
XPathException
- in the situation where the sequence is evaluated lazily, and
evaluation of the first item causes a dynamic error.public int getLength()
getLength
in interface GroundedValue
public int getCardinality()
Cardinality
public ItemType getItemType(TypeHierarchy th)
th
- the type hierarchy cache. If null, the returned value may be less precisepublic T itemAt(int n)
itemAt
in interface GroundedValue
n
- the position of the required itempublic void swap(int a, int b)
a
- the position of the first item to be swappedb
- the position of the second item to be swappedpublic ArrayIterator<T> iterate()
public UnfailingIterator<T> reverseIterate()
public boolean effectiveBooleanValue() throws XPathException
effectiveBooleanValue
in interface GroundedValue
XPathException
- if the sequence has no effective boolean value (for example a sequence of two integers)public GroundedValue subsequence(int start, int length)
subsequence
in interface GroundedValue
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 GroundedValue reduce()
reduce
in interface GroundedValue
Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.