net.sf.saxon.value
Class SequenceType

java.lang.Object
  extended by 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
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 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_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_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
 
Method Summary
 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(Value 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


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


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


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


EMPTY_SEQUENCE

public static final SequenceType EMPTY_SEQUENCE
A type that only permits the 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

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 Cardinality.EXACTLY_ONE, Cardinality.ONE_OR_MORE, etc

Returns:
the required cardinality
See Also:
Cardinality

matches

public boolean matches(Value 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) Saxonica Limited. All rights reserved.