Overview | Package | Class | Deprecated | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sf.saxon.value
Class ShareableSequence

    java.lang.Object
      net.sf.saxon.value.Value
          net.sf.saxon.value.ShareableSequence

All Implemented Interfaces:
  Serializable, Comparable, SequenceIterable, ValueRepresentation

    public final class ShareableSequence

extends Value

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.

See Also:
  Serialized Form

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
`ShareableSequence(List list)` Construct an sequence from an array of items.

Method Summary
`boolean` | `effectiveBooleanValue()` Get the effective boolean value
`int` | `getCardinality()` Determine the cardinality
`ItemType` | `getItemType(TypeHierarchy th)` Get the (lowest common) item type
`int` | `getLength()` Get the number of items in the sequence
`List` | `getList()` Get the underlying list
`boolean` | `isMultiValued()` Determine whether the value is multivalued, that is, whether it is a sequence that potentially contains more than one item
`boolean` | `isShareable()` Determine whether another value can share this list.
`Item` | `itemAt(int n)` Get the n'th item in the sequence (starting with 0 as the first item)
`SequenceIterator` | `iterate()` Return an iterator over this sequence.
`Value` | `reduce()` Reduce a value to its simplest form.
`Value` | `simplify()` Simplify this value

Methods inherited from class net.sf.saxon.value.Value
`asItem, asItem, asIterator, asValue, checkPermittedContents, compareTo, convert, convertJavaObjectToXPath, convertToJava, equals, fromItem, getCanonicalLexicalRepresentation, getIterator, getSchemaComparable, getStringValue, getStringValueCS, hashCode, iterate, makeQNameValue, process, stringToNumber, toString`

Methods inherited from class java.lang.Object
`getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### ShareableSequence

    public ShareableSequence(List list)

  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 Detail

### isMultiValued

    public boolean isMultiValued()

  Determine whether the value is multivalued, that is, whether it is a sequence that potentially contains more than one item

  Specified by:
    `isMultiValued` in class `Value`
  Returns:
    true if the value might contain more than one item, false if it definitely contains zero or one items

### isShareable

    public boolean isShareable()

  Determine whether another value can share this list. This is true provided the list has not already been extended by another value.

### getList

    public List getList()

  Get the underlying list

### simplify

    public Value simplify()

  Simplify this value

### 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

  Overrides:
    `reduce` in class `Value`

### getLength

    public int getLength()

  Get the number of items in the sequence

  Overrides:
    `getLength` in class `Value`
  Returns:
    the number of items in the sequence

### getCardinality

    public int getCardinality()

  Determine the cardinality

  Overrides:
    `getCardinality` in class `Value`
  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

  Overrides:
    `getItemType` in class `Value`
  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)

  Overrides:
    `itemAt` in class `Value`
  Parameters:
    `n` - the position of the required item
  Returns:
    the n'th item in the sequence

### iterate

    public SequenceIterator iterate()

  Return an iterator over this sequence.

  Specified by:
    `iterate` in class `Value`
  Returns:
    the required SequenceIterator, positioned at the start of the sequence

### effectiveBooleanValue

    public boolean effectiveBooleanValue()
                                  throws XPathException

  Get the effective boolean value

  Overrides:
    `effectiveBooleanValue` in class `Value`
  Returns:
    the effective boolean value
  Throws:
    `XPathException` - if any dynamic error occurs evaluating the expression

Overview | Package | Class | Deprecated | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (C) Michael H. Kay. All rights reserved.