Package javax.xml.xquery

## Interface XQSequenceType

- All Known Subinterfaces:
    `XQItemType`
  All Known Implementing Classes:
    `SaxonXQItemType`, `SaxonXQSequenceType`

      public interface XQSequenceType

  The `XQSequenceType` interface represents a sequence type as XQuery 1.0: An XML Query language.

  The `XQSequenceType` is the base interface for the `XQItemType` interface and contains an occurence indicator.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `OCC_EMPTY` |
    `static int` | `OCC_EXACTLY_ONE` |
    `static int` | `OCC_ONE_OR_MORE` |
    `static int` | `OCC_ZERO_OR_MORE` |
    `static int` | `OCC_ZERO_OR_ONE` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(java.lang.Object o)` | Compares the specified object with this sequence type for equality.
    `int` | `getItemOccurrence()` | Returns the occurrence indicator for the sequence type.
    `XQItemType` | `getItemType()` | Returns the type of the item in the sequence type.
    `int` | `hashCode()` | Returns a hash code consistent with the definition of the equals method.
    `java.lang.String` | `toString()` | Returns a human-readable implementation-defined string representation of the sequence type.

- - ### Field Detail

    - #### OCC_ZERO_OR_ONE

          static final int OCC_ZERO_OR_ONE

      See Also:
        Constant Field Values

    - #### OCC_EXACTLY_ONE

          static final int OCC_EXACTLY_ONE

      See Also:
        Constant Field Values

    - #### OCC_ZERO_OR_MORE

          static final int OCC_ZERO_OR_MORE

      See Also:
        Constant Field Values

    - #### OCC_ONE_OR_MORE

          static final int OCC_ONE_OR_MORE

      See Also:
        Constant Field Values

    - #### OCC_EMPTY

          static final int OCC_EMPTY

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getItemType

          XQItemType getItemType()

      Returns the type of the item in the sequence type.
      Returns:
        `XQItemType` representing the item type in the sequence. `null` is returned in case of an empty sequence.

    - #### getItemOccurrence

          int getItemOccurrence()

      Returns the occurrence indicator for the sequence type. One of:

      Occurrence indicators
      Description | Value
      --- | ---
      Zero or one | `OCC_ZERO_OR_ONE`
      Exactly one | `OCC_EXACTLY_ONE`
      Zero or more | `OCC_ZERO_OR_MORE`
      One or more | `OCC_ONE_OR_MORE`
      Empty | `OCC_EMPTY`

      Returns:
        `int` indicating the occurrence indicator

    - #### toString

          java.lang.String toString()

      Returns a human-readable implementation-defined string representation of the sequence type.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a `String` representation of the sequence type

    - #### equals

          boolean equals​(java.lang.Object o)

      Compares the specified object with this sequence type for equality. The result is `true` only if the argument is a sequence type object which represents the same XQuery sequence type.

      In order to comply with the general contract of `equals` and `hashCode` across different implementations the following algorithm must be used. Return `true` if and only if both objects are `XQsequenceType` and:

      - `getItemOccurrence()` is equal
      - if not `OCC_EMPTY`, `getItemType()` is equal
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `o` - an `XQItemType` object representing an XQuery sequence type
      Returns:
        `true` if the input item type object represents the same XQuery sequence type, `false` otherwise

    - #### hashCode

          int hashCode()

      Returns a hash code consistent with the definition of the equals method.

      In order to comply with the general contract of `equals` and `hashCode` across different implementations the following algorithm must be used:

            int hashCode;
            if (getItemOccurrence() == XQSequenceType.OCC_EMPTY)
            {
              hashCode = 1;
            }
            else
            {
              hashCode = getItemOccurrence()*31 + getItemType().hashCode();
            }

      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        hash code for this item type