Package net.sf.saxon.value
Class SequenceExtent
- java.lang.Object
-
- net.sf.saxon.value.Value
-
- net.sf.saxon.value.SequenceExtent
-
- All Implemented Interfaces:
java.io.Serializable
,Expression
,ValueRepresentation
public final class SequenceExtent extends Value
A sequence value implemented extensionally. That is, this class represents a sequence by allocating memory to each item in the sequence.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class net.sf.saxon.value.Value
EMPTY_CLASS_ARRAY
-
Fields inherited from interface net.sf.saxon.expr.Expression
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD
-
Fields inherited from interface net.sf.saxon.om.ValueRepresentation
EMPTY_VALUE_ARRAY
-
-
Constructor Summary
Constructors Constructor Description SequenceExtent(java.util.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 itemsSequenceExtent(SequenceIterator iter)
Construct 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
effectiveBooleanValue(XPathContext context)
Get the effective boolean valueint
getCardinality()
Determine the cardinalityint
getImplementationMethod()
An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().ItemType
getItemType(TypeHierarchy th)
Get the (lowest common) item typeint
getLength()
Get the number of items in the sequenceItem
itemAt(int n)
Get the n'th item in the sequence (starting with 0 as the first item)SequenceIterator
iterate(XPathContext context)
Return an iterator over this sequence.static ValueRepresentation
makeSequenceExtent(SequenceIterator iter)
Factory method to make a Value holding the contents of any SequenceIteratorValue
reduce()
Reduce a value to its simplest form.AxisIterator
reverseIterate()
Return an enumeration of this sequence in reverse order (used for reverse axes)Value
simplify()
Simplify this SequenceExtentvoid
swap(int a, int b)
Swap two items (needed to support sorting)-
Methods inherited from class net.sf.saxon.value.Value
asItem, asIterator, asValue, checkPermittedContents, convert, convertJavaObjectToXPath, convertToJava, display, equals, evaluateAsString, evaluateItem, getDependencies, getIterator, getParentExpression, getSpecialProperties, getStringValue, getStringValueCS, hashCode, iterateSubExpressions, makeQNameValue, optimize, process, promote, simplify, stringToNumber, toString, typeCheck
-
-
-
-
Constructor Detail
-
SequenceExtent
public SequenceExtent(Item[] items)
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
public SequenceExtent(Item[] value, int start, int length)
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
public SequenceExtent(SequenceExtent ext, int start, int length)
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
public SequenceExtent(java.util.List list)
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
public SequenceExtent(SequenceIterator iter) throws XPathException
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 Detail
-
makeSequenceExtent
public static ValueRepresentation makeSequenceExtent(SequenceIterator iter) throws XPathException
Factory method to make a Value holding the contents of any SequenceIterator- Throws:
XPathException
-
getImplementationMethod
public int getImplementationMethod()
An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process(). This method indicates which of these methods is preferred.
-
simplify
public Value simplify()
Simplify this SequenceExtent
-
reduce
public Value 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- Specified by:
getCardinality
in interfaceExpression
- Overrides:
getCardinality
in classValue
- Returns:
- the cardinality of the sequence, using the constants defined in net.sf.saxon.value.Cardinality
- See Also:
Cardinality
-
getItemType
public ItemType getItemType(TypeHierarchy th)
Get the (lowest common) item type- Specified by:
getItemType
in interfaceExpression
- Overrides:
getItemType
in classValue
- Parameters:
th
-- Returns:
- integer identifying an item type to which all the items in this sequence conform
-
itemAt
public Item itemAt(int n)
Get the n'th item in the sequence (starting with 0 as the first item)
-
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
public SequenceIterator iterate(XPathContext context)
Return an iterator over this sequence.- Parameters:
context
- dynamic evaluation context; not used in this implementation of the method- Returns:
- the required SequenceIterator, positioned at the start of the sequence
-
reverseIterate
public AxisIterator 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
public boolean effectiveBooleanValue(XPathContext context) throws XPathException
Get the effective boolean value- Specified by:
effectiveBooleanValue
in interfaceExpression
- Overrides:
effectiveBooleanValue
in classValue
- Parameters:
context
- The context in which the expression is to be evaluated- Returns:
- the effective boolean value
- Throws:
XPathException
- if any dynamic error occurs evaluating the expression
-
-