Package net.sf.saxon.value
Class ShareableSequence
java.lang.Object
net.sf.saxon.value.Value
net.sf.saxon.value.ShareableSequence
- All Implemented Interfaces:
ValueRepresentation
A sequence value implemented extensionally using an extensible List whose leading part can be shared
with other sequence values. The list can be appended to by other users (at most one other user!),
but the items within the range used by this sequence value cannot be modified.
-
Field Summary
Fields inherited from class net.sf.saxon.value.Value
INDETERMINATE_ORDERING
Fields inherited from interface net.sf.saxon.om.ValueRepresentation
EMPTY_VALUE_ARRAY
-
Constructor Summary
Constructors -
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 sequencegetList()
Get the underlying listboolean
Determine whether another value can share this list.itemAt
(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 ShareableSequence
makeShareableSequence
(Value baseVal, SequenceIterator iter) Make a new ShareableSequence from an existing value and an iterator over items to be appended to the sequencereduce()
Reduce a value to its simplest form.simplify()
Simplify this valuetoString()
Methods inherited from class net.sf.saxon.value.Value
asItem, asItem, asIterator, asValue, checkPermittedContents, convertToJava, equals, fromItem, getCanonicalLexicalRepresentation, getIterator, getSchemaComparable, getSequenceLength, getStringValue, getStringValueCS, hashCode, isIdentical, process
-
Constructor Details
-
ShareableSequence
Construct an sequence from an array of items. Note, the list of items is used as is, which means the caller must not subsequently change its contents; however it is permitted to subsequently append items to the list (indeed, that is the raison d'etre of this class)- Parameters:
list
- the list of items to be included in the sequence
-
-
Method Details
-
getList
Get the underlying list- Returns:
- the underlying list of values
-
simplify
Simplify this value- Returns:
- the simplified 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- 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. If null is supplied, the resulting value may be less precise- 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) -
iterate
Return an iterator over this sequence. -
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
-
toString