Package net.sf.saxon.value
Class SequenceExtent
java.lang.Object
net.sf.saxon.value.Value
net.sf.saxon.value.SequenceExtent
- All Implemented Interfaces:
Serializable
,SequenceIterable
,GroundedValue
,ValueRepresentation
A sequence value implemented extensionally. That is, this class represents a sequence
by allocating memory to each item in the sequence.
- See Also:
-
Field Summary
Fields inherited from class net.sf.saxon.value.Value
EMPTY_CLASS_ARRAY, INDETERMINATE_ORDERING
Fields inherited from interface net.sf.saxon.om.ValueRepresentation
EMPTY_VALUE_ARRAY
-
Constructor Summary
ConstructorsConstructorDescriptionSequenceExtent
(List list) Construct a SequenceExtent from a List.SequenceExtent
(Item[] items) Construct an sequence from an array of items.SequenceExtent
(Item[] value, int start, int length) Construct a SequenceExtent from part of an array of itemsConstruct a sequence containing all the items in a SequenceIterator.SequenceExtent
(SequenceExtent ext, int start, int length) Construct a SequenceExtent as a view of another SequenceExtent -
Method Summary
Modifier and TypeMethodDescriptionboolean
Get the effective boolean valueint
Determine the cardinalityGet the (lowest common) item typeint
Get the number of items in the sequenceitemAt
(int n) Get the n'th item in the sequence (starting with 0 as the first item)iterate()
Return an iterator over this sequence.static ValueRepresentation
Factory method to make a Value holding the contents of any SequenceIteratorreduce()
Reduce a value to its simplest form.Return an enumeration of this sequence in reverse order (used for reverse axes)simplify()
Simplify this SequenceExtentsubsequence
(int start, int length) Get a subsequence of the valuevoid
swap
(int a, int b) Swap two items (needed to support sorting)Methods inherited from class net.sf.saxon.value.Value
asItem, asItem, asIterator, asValue, checkPermittedContents, convertToJava, equals, fromItem, getCanonicalLexicalRepresentation, getIterator, getSchemaComparable, getStringValue, getStringValueCS, iterate, makeQNameValue, process, stringToNumber, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.sf.saxon.om.ValueRepresentation
getStringValue, getStringValueCS
-
Constructor Details
-
SequenceExtent
Construct an sequence from an array of items. Note, the array of items is used as is, which means the caller must not subsequently change its contents.- Parameters:
items
- the array of items to be included in the sequence
-
SequenceExtent
Construct a SequenceExtent from part of an array of items- Parameters:
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 SequenceExtent
-
SequenceExtent
Construct a SequenceExtent as a view of another SequenceExtent- Parameters:
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 SequenceExtent
-
SequenceExtent
Construct a SequenceExtent from a List. The members of the list must all be Items- Parameters:
list
- the list of items to be included in the sequence
-
SequenceExtent
Construct a sequence containing all the items in a SequenceIterator.- Parameters:
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.- Throws:
XPathException
- if reading the items using the SequenceIterator raises an error
-
-
Method Details
-
makeSequenceExtent
Factory method to make a Value holding the contents of any SequenceIterator- Parameters:
iter
- a Sequence iterator that will be consumed to deliver the items in the sequence- Returns:
- a ValueRepresentation holding the items delivered by the SequenceIterator. If the
sequence is empty the result will be an instance of
EmptySequence
. If it is of length one, the result will be anItem
. In all other cases, it will be an instance ofSequenceExtent
. - Throws:
XPathException
-
simplify
Simplify this SequenceExtent- Returns:
- a Value holding the items delivered by the SequenceIterator. If the
sequence is empty the result will be an instance of
EmptySequence
. If it is of length one, the result will be anAtomicValue
or aSingletonNode
. In all other cases, theSequenceExtent
will be returned unchanged.
-
reduce
Reduce a value to its simplest form. If the value is a closure or some other form of deferred value such as a FunctionCallPackage, then it is reduced to a SequenceExtent. If it is a SequenceExtent containing a single item, then it is reduced to that item. One consequence that is exploited by class FilterExpression is that if the value is a singleton numeric value, then the result will be an instance of NumericValue -
getLength
public int getLength()Get the number of items in the sequence -
getCardinality
public int getCardinality()Determine the cardinality- Overrides:
getCardinality
in classValue
- Returns:
- the cardinality of the sequence, using the constants defined in net.sf.saxon.value.Cardinality
- See Also:
-
getItemType
Get the (lowest common) item type- Overrides:
getItemType
in classValue
- Parameters:
th
- the type hierarchy cache- Returns:
- integer identifying an item type to which all the items in this sequence conform
-
itemAt
Get the n'th item in the sequence (starting with 0 as the first item)- Specified by:
itemAt
in interfaceGroundedValue
- Overrides:
itemAt
in classValue
- Parameters:
n
- the position of the required item- Returns:
- the n'th item in the sequence
-
swap
public void swap(int a, int b) Swap two items (needed to support sorting)- Parameters:
a
- the position of the first item to be swappedb
- the position of the second item to be swapped
-
iterate
Return an iterator over this sequence. -
reverseIterate
Return an enumeration of this sequence in reverse order (used for reverse axes)- Returns:
- an AxisIterator that processes the items in reverse order
-
effectiveBooleanValue
Get the effective boolean value- Overrides:
effectiveBooleanValue
in classValue
- Returns:
- the effective boolean value
- Throws:
XPathException
- if any dynamic error occurs evaluating the expression
-
subsequence
Get a subsequence of the value- Specified by:
subsequence
in interfaceGroundedValue
- Parameters:
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 sequence- Returns:
- the required subsequence. If min is
-