public class SequenceTool
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static int |
INDETERMINATE_ORDERING
Constant returned by compareTo() method to indicate an indeterminate ordering between two values
|
Constructor and Description |
---|
SequenceTool() |
Modifier and Type | Method and Description |
---|---|
static Item |
asItem(Sequence sequence)
Static method to make an Item from a Value
|
static java.lang.Object |
convertToJava(Item item)
Convert an XPath value to a Java object.
|
static int |
getCardinality(Sequence sequence)
Get the cardinality of a sequence
|
static ItemType |
getItemType(Sequence sequence,
TypeHierarchy th)
Get the item type of the items in a sequence.
|
static int |
getLength(Sequence sequence)
Get the length of a sequence (the number of items it contains)
|
static SequenceType |
getSequenceType(Sequence value,
TypeHierarchy th) |
static java.lang.String |
getStringValue(Sequence sequence)
Get the string value of a sequence.
|
static UType |
getUType(Sequence sequence)
Get the UType of the items in a sequence.
|
static boolean |
hasLength(SequenceIterator iter,
int length)
Ask whether the length of a sequence is exactly N
|
static boolean |
isUnrepeatable(Sequence seq) |
static Item |
itemAt(Sequence sequence,
int index)
Get the item at a given offset in a sequence.
|
static Sequence |
makeRepeatable(Sequence seq) |
static void |
process(Sequence value,
XPathContext context,
Location locationId)
Process a supplied value by copying it to the current output destination
|
static boolean |
sameLength(SequenceIterator a,
SequenceIterator b)
Determine whether two sequences have the same number of items.
|
static GroundedValue |
toGroundedValue(Sequence sequence)
Produce a GroundedValue containing the same values as a supplied sequence.
|
static GroundedValue |
toGroundedValue(SequenceIterator iterator)
Produce a GroundedValue containing the same values as a supplied sequence.
|
static Sequence |
toLazySequence(SequenceIterator iterator)
Construct a sequence capable of returning the same items as an iterator,
without incurring the cost of evaluating the iterator and storing all
the items.
|
static Sequence |
toMemoSequence(SequenceIterator iterator)
Produce a Sequence containing the same values as a supplied sequence; the input is
read progressively as required, and saved in a buffer as it is read in case it is needed
again.
|
public static final int INDETERMINATE_ORDERING
public static GroundedValue toGroundedValue(Sequence sequence) throws XPathException
sequence
- the supplied sequenceXPathException
- for example if the value is a closure that needs to be evaluated,
and evaluation failspublic static GroundedValue toGroundedValue(SequenceIterator iterator) throws XPathException
iterator
- the supplied sequence. The iterator may or may not be consumed as a result of
passing it to this method.XPathException
- if a failure occurs reading the input iteratorpublic static Sequence toMemoSequence(SequenceIterator iterator) throws XPathException
iterator
- the supplied sequence. The iterator may or may not be consumed as a result of
passing it to this method.XPathException
- if a failure occurs reading the input iteratorpublic static Sequence toLazySequence(SequenceIterator iterator) throws XPathException
iterator
- the supplied sequence. The iterator may or may not be consumed as a result of
passing it to this method.XPathException
- if a failure occurs reading the input iteratorpublic static boolean isUnrepeatable(Sequence seq)
public static Sequence makeRepeatable(Sequence seq) throws XPathException
XPathException
public static int getLength(Sequence sequence) throws XPathException
sequence
- the sequenceXPathException
- if an error occurs (due to lazy evaluation)public static boolean hasLength(SequenceIterator iter, int length) throws XPathException
iter
- an iterator over the sequence in question (which is typically consumed)length
- the supposed lengthXPathException
public static boolean sameLength(SequenceIterator a, SequenceIterator b) throws XPathException
a
- iterator over the first sequenceb
- iterator over the second sequeceXPathException
public static Item itemAt(Sequence sequence, int index) throws XPathException
sequence
- the input sequenceindex
- the 0-based subscriptXPathException
- for example if the value is a closure that needs to be
evaluated, and evaluation failspublic static Item asItem(Sequence sequence) throws XPathException
sequence
- the value to be convertedXPathException
- if the supplied Sequence contains multiple itemspublic static java.lang.Object convertToJava(Item item) throws XPathException
item
- the item to be convertedXPathException
- if an error occurs: for example, if the XPath value is
an integer and is too big to fit in a Java longpublic static java.lang.String getStringValue(Sequence sequence) throws XPathException
sequence
- the input sequenceXPathException
- if the sequence contains an item with no string value,
for example a function itempublic static ItemType getItemType(Sequence sequence, TypeHierarchy th)
sequence
- the input sequenceth
- the Type Hierarchy cachepublic static SequenceType getSequenceType(Sequence value, TypeHierarchy th)
public static UType getUType(Sequence sequence)
sequence
- the input sequencepublic static int getCardinality(Sequence sequence)
sequence
- the supplied sequenceStaticProperty.ALLOWS_ZERO
(for an empty sequence)
StaticProperty.EXACTLY_ONE
(for a singleton), or StaticProperty.ALLOWS_ONE_OR_MORE
(for
a sequence with more than one item)public static void process(Sequence value, XPathContext context, Location locationId) throws XPathException
value
- the sequence to be processedcontext
- The dynamic context, giving access to the current node,
the current variables, etc.locationId
- (can be set to -1 if absent) information about the location of the value,
which can be resolved by reference to the PipelineConfiguration of the current output
destinationXPathException
- if an error occurs (for example if the value is
a closure that needs to be evaluated)Copyright (c) 2004-2018 Saxonica Limited. All rights reserved.