net.sf.saxon.value

## Class SequenceType

- java.lang.Object
- - net.sf.saxon.value.SequenceType

- All Implemented Interfaces:
    Serializable

      public final class SequenceType
      extends Object
      implements Serializable

  SequenceType: a sequence type consists of a primary type, which indicates the type of item, and a cardinality, which indicates the number of occurrences permitted. Where the primary type is element or attribute, there may also be a content type, indicating the required type annotation on the element or attribute content.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static SequenceType` | `ANY_SEQUENCE` A type that allows any sequence of items
    `static SequenceType` | `ATOMIC_SEQUENCE` A type that allows zero or more atomic values
    `static SequenceType` | `EMPTY_SEQUENCE` A type that only permits the empty sequence
    `static SequenceType` | `NODE_SEQUENCE` A type that allows a sequence of zero or more nodes
    `static SequenceType` | `NON_EMPTY_SEQUENCE` A type that only permits a non-empty sequence
    `static SequenceType` | `NUMERIC_SEQUENCE` A type that allows a sequence of zero or more numeric values
    `static SequenceType` | `OPTIONAL_ANY_URI` A type that allows a single optional anyURI
    `static SequenceType` | `OPTIONAL_ATOMIC` A type that allows zero or one atomic values
    `static SequenceType` | `OPTIONAL_BOOLEAN` A type that allows a single optional integer
    `static SequenceType` | `OPTIONAL_BYTE` A type that allows a single optional byte
    `static SequenceType` | `OPTIONAL_DATE_TIME` A type that allows a single optional dateTime
    `static SequenceType` | `OPTIONAL_DECIMAL` A type that allows a single optional decimal
    `static SequenceType` | `OPTIONAL_DOCUMENT_NODE` A type that allows a single document node
    `static SequenceType` | `OPTIONAL_DOUBLE` A type that allows a single optional double
    `static SequenceType` | `OPTIONAL_FLOAT` A type that allows a single optional float
    `static SequenceType` | `OPTIONAL_INT` A type that allows a single optional int
    `static SequenceType` | `OPTIONAL_INTEGER` A type that allows a single optional integer
    `static SequenceType` | `OPTIONAL_ITEM` A type that allows zero or one items, of any kind
    `static SequenceType` | `OPTIONAL_LONG` A type that allows a single optional long
    `static SequenceType` | `OPTIONAL_NODE` A type that allows zero or one nodes
    `static SequenceType` | `OPTIONAL_NUMERIC` A type that allows an optional numeric value
    `static SequenceType` | `OPTIONAL_QNAME` A type that allows a single optional xs:QName
    `static SequenceType` | `OPTIONAL_SHORT` A type that allows a single optional short
    `static SequenceType` | `OPTIONAL_STRING` A type that allows a single optional string
    `static SequenceType` | `SINGLE_ANY_URI` A type that allows a single URI
    `static SequenceType` | `SINGLE_ATOMIC` A type that allows exactly one atomic value
    `static SequenceType` | `SINGLE_BOOLEAN` A type that allows a single boolean
    `static SequenceType` | `SINGLE_BYTE` A type that allows a single short
    `static SequenceType` | `SINGLE_DOUBLE` A type that allows a single double
    `static SequenceType` | `SINGLE_ELEMENT_NODE` A type that allows a single element node
    `static SequenceType` | `SINGLE_FLOAT` A type that allows a single float
    `static SequenceType` | `SINGLE_INT` A type that allows a single int
    `static SequenceType` | `SINGLE_INTEGER` A type that allows a single integer
    `static SequenceType` | `SINGLE_ITEM` A type that allows exactly one item, of any kind
    `static SequenceType` | `SINGLE_LONG` A type that allows a single long
    `static SequenceType` | `SINGLE_NODE` A type that allows a single node
    `static SequenceType` | `SINGLE_NUMERIC`
    `static SequenceType` | `SINGLE_QNAME` A type that allows a single xs:QName
    `static SequenceType` | `SINGLE_SHORT` A type that allows a single short
    `static SequenceType` | `SINGLE_STRING` A type that allows a single string
    `static SequenceType` | `SINGLE_UNTYPED_ATOMIC` A type that allows a single untyped atomic
    `static SequenceType` | `STRING_SEQUENCE` A type that allows a sequence of zero or more string values

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
    `int` | `getCardinality()` Get the cardinality component of this SequenceType.
    `ItemType` | `getPrimaryType()` Get the "primary" part of this required type.
    `int` | `hashCode()` Returns a hash code value for the object.
    `static SequenceType` | `makeSequenceType(ItemType primaryType, int cardinality)` Construct an instance of SequenceType.
    `boolean` | `matches(Sequence value, Configuration config)` Determine whether a given value is a valid instance of this SequenceType
    `String` | `toString()` Return a string representation of this SequenceType

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### ANY_SEQUENCE

          public static final SequenceType ANY_SEQUENCE

      A type that allows any sequence of items

    - #### SINGLE_ITEM

          public static final SequenceType SINGLE_ITEM

      A type that allows exactly one item, of any kind

    - #### OPTIONAL_ITEM

          public static final SequenceType OPTIONAL_ITEM

      A type that allows zero or one items, of any kind

    - #### SINGLE_ATOMIC

          public static final SequenceType SINGLE_ATOMIC

      A type that allows exactly one atomic value

    - #### OPTIONAL_ATOMIC

          public static final SequenceType OPTIONAL_ATOMIC

      A type that allows zero or one atomic values

    - #### ATOMIC_SEQUENCE

          public static final SequenceType ATOMIC_SEQUENCE

      A type that allows zero or more atomic values

    - #### SINGLE_STRING

          public static final SequenceType SINGLE_STRING

      A type that allows a single string

    - #### SINGLE_UNTYPED_ATOMIC

          public static final SequenceType SINGLE_UNTYPED_ATOMIC

      A type that allows a single untyped atomic

    - #### OPTIONAL_STRING

          public static final SequenceType OPTIONAL_STRING

      A type that allows a single optional string

    - #### SINGLE_BOOLEAN

          public static final SequenceType SINGLE_BOOLEAN

      A type that allows a single boolean

    - #### OPTIONAL_BOOLEAN

          public static final SequenceType OPTIONAL_BOOLEAN

      A type that allows a single optional integer

    - #### SINGLE_INTEGER

          public static final SequenceType SINGLE_INTEGER

      A type that allows a single integer

    - #### OPTIONAL_INTEGER

          public static final SequenceType OPTIONAL_INTEGER

      A type that allows a single optional integer

    - #### SINGLE_LONG

          public static final SequenceType SINGLE_LONG

      A type that allows a single long

    - #### SINGLE_ANY_URI

          public static final SequenceType SINGLE_ANY_URI

      A type that allows a single URI

    - #### OPTIONAL_LONG

          public static final SequenceType OPTIONAL_LONG

      A type that allows a single optional long

    - #### SINGLE_INT

          public static final SequenceType SINGLE_INT

      A type that allows a single int

    - #### OPTIONAL_INT

          public static final SequenceType OPTIONAL_INT

      A type that allows a single optional int

    - #### SINGLE_SHORT

          public static final SequenceType SINGLE_SHORT

      A type that allows a single short

    - #### OPTIONAL_SHORT

          public static final SequenceType OPTIONAL_SHORT

      A type that allows a single optional short

    - #### SINGLE_BYTE

          public static final SequenceType SINGLE_BYTE

      A type that allows a single short

    - #### OPTIONAL_BYTE

          public static final SequenceType OPTIONAL_BYTE

      A type that allows a single optional byte

    - #### SINGLE_DOUBLE

          public static final SequenceType SINGLE_DOUBLE

      A type that allows a single double

    - #### OPTIONAL_DOUBLE

          public static final SequenceType OPTIONAL_DOUBLE

      A type that allows a single optional double

    - #### SINGLE_FLOAT

          public static final SequenceType SINGLE_FLOAT

      A type that allows a single float

    - #### OPTIONAL_FLOAT

          public static final SequenceType OPTIONAL_FLOAT

      A type that allows a single optional float

    - #### OPTIONAL_DECIMAL

          public static final SequenceType OPTIONAL_DECIMAL

      A type that allows a single optional decimal

    - #### OPTIONAL_ANY_URI

          public static final SequenceType OPTIONAL_ANY_URI

      A type that allows a single optional anyURI

    - #### OPTIONAL_DATE_TIME

          public static final SequenceType OPTIONAL_DATE_TIME

      A type that allows a single optional dateTime

    - #### SINGLE_QNAME

          public static final SequenceType SINGLE_QNAME

      A type that allows a single xs:QName

    - #### OPTIONAL_QNAME

          public static final SequenceType OPTIONAL_QNAME

      A type that allows a single optional xs:QName

    - #### OPTIONAL_NUMERIC

          public static final SequenceType OPTIONAL_NUMERIC

      A type that allows an optional numeric value

    - #### SINGLE_NUMERIC

          public static final SequenceType SINGLE_NUMERIC

    - #### OPTIONAL_NODE

          public static final SequenceType OPTIONAL_NODE

      A type that allows zero or one nodes

    - #### SINGLE_NODE

          public static final SequenceType SINGLE_NODE

      A type that allows a single node

    - #### OPTIONAL_DOCUMENT_NODE

          public static final SequenceType OPTIONAL_DOCUMENT_NODE

      A type that allows a single document node

    - #### SINGLE_ELEMENT_NODE

          public static final SequenceType SINGLE_ELEMENT_NODE

      A type that allows a single element node

    - #### NODE_SEQUENCE

          public static final SequenceType NODE_SEQUENCE

      A type that allows a sequence of zero or more nodes

    - #### NUMERIC_SEQUENCE

          public static final SequenceType NUMERIC_SEQUENCE

      A type that allows a sequence of zero or more numeric values

    - #### STRING_SEQUENCE

          public static final SequenceType STRING_SEQUENCE

      A type that allows a sequence of zero or more string values

    - #### EMPTY_SEQUENCE

          public static final SequenceType EMPTY_SEQUENCE

      A type that only permits the empty sequence

    - #### NON_EMPTY_SEQUENCE

          public static final SequenceType NON_EMPTY_SEQUENCE

      A type that only permits a non-empty sequence

  - ### Method Detail

    - #### makeSequenceType

          public static SequenceType makeSequenceType(ItemType primaryType,
                                      int cardinality)

      Construct an instance of SequenceType. This is a factory method: it maintains a pool of SequenceType objects to reduce the amount of object creation.
      Parameters:
        `primaryType` - The item type
        `cardinality` - The required cardinality. This must be one of the constants `StaticProperty.EXACTLY_ONE`, `StaticProperty.ALLOWS_ONE_OR_MORE`, etc
      Returns:
        the SequenceType (either a newly created object, or an existing one from the cache)

    - #### getPrimaryType

          public ItemType getPrimaryType()

      Get the "primary" part of this required type. E.g. for type element(*, xs:date) the "primary type" is element()
      Returns:
        The item type code of the primary type

    - #### getCardinality

          public int getCardinality()

      Get the cardinality component of this SequenceType. This is one of the constants `StaticProperty.EXACTLY_ONE`, `StaticProperty.ALLOWS_ONE_OR_MORE`, etc
      Returns:
        the required cardinality
      See Also:
        `Cardinality`

    - #### matches

          public boolean matches(Sequence value,
                        Configuration config)
                          throws XPathException

      Determine whether a given value is a valid instance of this SequenceType
      Parameters:
        `value` - the value to be tested
      Returns:
        true if the value is a valid instance of this type
      Throws:
        `XPathException`

    - #### toString

          public String toString()

      Return a string representation of this SequenceType
      Overrides:
        `toString` in class `Object`
      Returns:
        the string representation as an instance of the XPath SequenceType construct

    - #### hashCode

          public int hashCode()

      Returns a hash code value for the object.
      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public boolean equals(Object obj)

      Indicates whether some other object is "equal to" this one.
      Overrides:
        `equals` in class `Object`

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.