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_ORDERINGFields inherited from interface net.sf.saxon.om.ValueRepresentation
EMPTY_VALUE_ARRAY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanGet the effective boolean valueintDetermine the cardinalityGet the (lowest common) item typeintGet the number of items in the sequencegetList()Get the underlying listbooleanDetermine 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 ShareableSequencemakeShareableSequence(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:
getCardinalityin 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:
getItemTypein 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:
effectiveBooleanValuein classValue- Returns:
- the effective boolean value
- Throws:
XPathException- if any dynamic error occurs evaluating the expression
-
toString