Package com.saxonica.xqj

## Class SaxonXQStaticContext

- java.lang.Object
- - com.saxonica.xqj.SaxonXQStaticContext

- All Implemented Interfaces:
    `XQStaticContext`

      public class SaxonXQStaticContext
      extends java.lang.Object
      implements XQStaticContext

  Saxon implementation of the XQJ XQStaticContext interface

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SaxonXQStaticContext​(SaxonXQStaticContext sc)` | Create a SaxonXQStaticContext object as a copy of another SaxonXQStaticContext object
    `SaxonXQStaticContext​(Configuration config)` | Create a SaxonXQStaticContext object, the Saxon implementation of XQStaticContext in XQJ

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `checkNotNull​(java.lang.Object arg)` |
    `void` | `declareNamespace​(java.lang.String prefix, java.lang.String uri)` | Declares a namespace prefix and associates it with a namespace URI.
    `java.lang.String` | `getBaseURI()` | Gets the Base URI, if set in the static context, else the empty string.
    `int` | `getBindingMode()` | Gets the value of the binding mode property.
    `int` | `getBoundarySpacePolicy()` | Gets the boundary-space policy defined in the static context.
    `int` | `getConstructionMode()` | Gets the construction mode defined in the static context.
    `XQItemType` | `getContextItemStaticType()` | Gets the static type of the context item.
    `int` | `getCopyNamespacesModeInherit()` | Gets the inherit part of the copy-namespaces mode defined in the static context.
    `int` | `getCopyNamespacesModePreserve()` | Gets the preserve part of the copy-namespaces mode defined in the static context.
    `java.lang.String` | `getDefaultCollation()` | Gets the URI of the default collation.
    `java.lang.String` | `getDefaultElementTypeNamespace()` | Gets the URI of the default element/type namespace, the empty string if not set.
    `java.lang.String` | `getDefaultFunctionNamespace()` | Gets the URI of the default function namespace, the empty string if not set.
    `int` | `getDefaultOrderForEmptySequences()` | Gets the default order for empty sequences defined in the static context.
    `int` | `getHoldability()` | Gets the value of the holdability property.
    `java.lang.String[]` | `getNamespacePrefixes()` | Returns the prefixes of all the statically known namespaces.
    `java.lang.String` | `getNamespaceURI​(java.lang.String prefix)` | Retrieves the namespace URI associated with a prefix.
    `int` | `getOrderingMode()` | Gets the ordering mode defined in the static context.
    `int` | `getQueryLanguageTypeAndVersion()` | Gets the value of the language type and version property.
    `int` | `getQueryTimeout()` | Retrieves the number of seconds an implementation will wait for a query to execute.
    `protected StaticQueryContext` | `getSaxonStaticQueryContext()` | Get a new Saxon StaticQueryContext object holding the information held in this XQStaticContext
    `int` | `getScrollability()` | Gets the value of the scrollability property.
    `void` | `setBaseURI​(java.lang.String baseUri)` | Sets the Base URI in the static context, specify the empty string to make it undefined.
    `void` | `setBindingMode​(int bindingMode)` | Sets the binding mode property.
    `void` | `setBoundarySpacePolicy​(int policy)` | Sets the boundary-space policy in the static context.
    `void` | `setConstructionMode​(int mode)` | Sets the construction mode in the static context.
    `void` | `setContextItemStaticType​(XQItemType contextItemType)` | Sets the static type of the context item, specify `null` to make it unspecified.
    `void` | `setCopyNamespacesModeInherit​(int mode)` | Sets the inherit part of the copy-namespaces mode in the static context.
    `void` | `setCopyNamespacesModePreserve​(int mode)` | Sets the preserve part of the copy-namespaces mode in the static context.
    `void` | `setDefaultCollation​(java.lang.String uri)` | Sets the URI of the default collation.
    `void` | `setDefaultElementTypeNamespace​(java.lang.String uri)` | Sets the URI of the default element/type namespace, the empty string to make it unspecified.
    `void` | `setDefaultFunctionNamespace​(java.lang.String uri)` | Sets the URI of the default function namespace, the empty string to make it unspecified.
    `void` | `setDefaultOrderForEmptySequences​(int order)` | Sets the default order for empty sequences in the static context.
    `void` | `setHoldability​(int holdability)` | Sets the holdability property.
    `void` | `setOrderingMode​(int mode)` | Sets the ordering mode in the static context.
    `void` | `setQueryLanguageTypeAndVersion​(int langtype)` | Sets the input query language type and version.
    `void` | `setQueryTimeout​(int seconds)` | Sets the number of seconds an implementation will wait for a query to execute.
    `void` | `setScrollability​(int scrollability)` | Sets the scrollability of the result sequence.

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SaxonXQStaticContext

          public SaxonXQStaticContext​(Configuration config)

      Create a SaxonXQStaticContext object, the Saxon implementation of XQStaticContext in XQJ
      Parameters:
        `config` - the Saxon configuration

    - #### SaxonXQStaticContext

          public SaxonXQStaticContext​(SaxonXQStaticContext sc)

      Create a SaxonXQStaticContext object as a copy of another SaxonXQStaticContext object
      Parameters:
        `sc` - the static context to be copied

  - ### Method Detail

    - #### getSaxonStaticQueryContext

          protected StaticQueryContext getSaxonStaticQueryContext()

      Get a new Saxon StaticQueryContext object holding the information held in this XQStaticContext
      Returns:
        a newly constructed StaticQueryContext object

    - #### declareNamespace

          public void declareNamespace​(java.lang.String prefix,
                                       java.lang.String uri)
                                throws XQException

      Description copied from interface: `XQStaticContext`
      Declares a namespace prefix and associates it with a namespace URI. If the namespace URI is the empty string, the prefix is removed from the in-scope namespace definitions.
      Specified by:
        `declareNamespace` in interface `XQStaticContext`
      Parameters:
        `prefix` - the prefix for the namespace URI
        `uri` - the namespace URI. An empty string undeclares the specific prefix. Cannot be `null`
      Throws:
        `XQException` - if (1) a `null` prefix, or (2) a `null` namespace URI is specified

    - #### getBaseURI

          public java.lang.String getBaseURI()

      Description copied from interface: `XQStaticContext`
      Gets the Base URI, if set in the static context, else the empty string.
      Specified by:
        `getBaseURI` in interface `XQStaticContext`
      Returns:
        the base URI, if set, else the empty string. Cannot be `null`..

    - #### getBindingMode

          public int getBindingMode()

      Description copied from interface: `XQStaticContext`
      Gets the value of the binding mode property. By default an XQJ implementation operates in immediate binding mode.
      Specified by:
        `getBindingMode` in interface `XQStaticContext`
      Returns:
        the binding mode. One of `XQConstants.BINDING_MODE_IMMEDIATE`, or`XQConstants.BINDING_MODE_DEFERRED`.

    - #### getBoundarySpacePolicy

          public int getBoundarySpacePolicy()

      Description copied from interface: `XQStaticContext`
      Gets the boundary-space policy defined in the static context.
      Specified by:
        `getBoundarySpacePolicy` in interface `XQStaticContext`
      Returns:
        the boundary-space policy value. One of: `XQConstants.BOUNDARY_SPACE_PRESERVE`, `XQConstants.BOUNDARY_SPACE_STRIP`.

    - #### getConstructionMode

          public int getConstructionMode()

      Description copied from interface: `XQStaticContext`
      Gets the construction mode defined in the static context.
      Specified by:
        `getConstructionMode` in interface `XQStaticContext`
      Returns:
        construction mode value. One of: `XQConstants.CONSTRUCTION_MODE_PRESERVE`, `XQConstants.CONSTRUCTION_MODE_STRIP`

    - #### getContextItemStaticType

          public XQItemType getContextItemStaticType()

      Description copied from interface: `XQStaticContext`
      Gets the static type of the context item. `null` if unspecified.
      Specified by:
        `getContextItemStaticType` in interface `XQStaticContext`
      Returns:
        the static type of the context item, if set, else `null`

    - #### getCopyNamespacesModeInherit

          public int getCopyNamespacesModeInherit()

      Description copied from interface: `XQStaticContext`
      Gets the inherit part of the copy-namespaces mode defined in the static context.
      Specified by:
        `getCopyNamespacesModeInherit` in interface `XQStaticContext`
      Returns:
        construction mode value. One of: `XQConstants.COPY_NAMESPACES_MODE_INHERIT`, `XQConstants.COPY_NAMESPACES_MODE_NO_INHERIT`.

    - #### getCopyNamespacesModePreserve

          public int getCopyNamespacesModePreserve()

      Description copied from interface: `XQStaticContext`
      Gets the preserve part of the copy-namespaces mode defined in the static context.
      Specified by:
        `getCopyNamespacesModePreserve` in interface `XQStaticContext`
      Returns:
        construction mode value. One of: `XQConstants.COPY_NAMESPACES_MODE_PRESERVE`, `XQConstants.COPY_NAMESPACES_MODE_NO_PRESERVE`.

    - #### getDefaultCollation

          public java.lang.String getDefaultCollation()

      Description copied from interface: `XQStaticContext`
      Gets the URI of the default collation.
      Specified by:
        `getDefaultCollation` in interface `XQStaticContext`
      Returns:
        the URI of the default collation. Cannot be `null`.

    - #### getDefaultElementTypeNamespace

          public java.lang.String getDefaultElementTypeNamespace()

      Description copied from interface: `XQStaticContext`
      Gets the URI of the default element/type namespace, the empty string if not set.
      Specified by:
        `getDefaultElementTypeNamespace` in interface `XQStaticContext`
      Returns:
        the URI of the default element/type namespace, if set, else the empty string. Cannot be `null`

    - #### getDefaultFunctionNamespace

          public java.lang.String getDefaultFunctionNamespace()

      Description copied from interface: `XQStaticContext`
      Gets the URI of the default function namespace, the empty string if not set.
      Specified by:
        `getDefaultFunctionNamespace` in interface `XQStaticContext`
      Returns:
        the URI of the default function namespace, if set, else the empty string. Cannot be `null`

    - #### getDefaultOrderForEmptySequences

          public int getDefaultOrderForEmptySequences()

      Description copied from interface: `XQStaticContext`
      Gets the default order for empty sequences defined in the static context.
      Specified by:
        `getDefaultOrderForEmptySequences` in interface `XQStaticContext`
      Returns:
        default order for empty sequences value. One of: `XQConstants.DEFAULT_ORDER_FOR_EMPTY_SEQUENCES_GREATEST`, `XQConstants.DEFAULT_ORDER_FOR_EMPTY_SEQUENCES_LEAST`.

    - #### getNamespacePrefixes

          public java.lang.String[] getNamespacePrefixes()

      Description copied from interface: `XQStaticContext`
      Returns the prefixes of all the statically known namespaces. Use the `getNamespaceURI` method to look up the namespace URI corresponding to a specific prefix.
      Specified by:
        `getNamespacePrefixes` in interface `XQStaticContext`
      Returns:
        `String` array containing the namespace prefixes. Cannot be `null`

    - #### getNamespaceURI

          public java.lang.String getNamespaceURI​(java.lang.String prefix)
                                           throws XQException

      Description copied from interface: `XQStaticContext`
      Retrieves the namespace URI associated with a prefix. An `XQException` is thrown if an unknown prefix is specified, i.e. a prefix not returned by the `getInScopeNamespacePrefixes` method.
      Specified by:
        `getNamespaceURI` in interface `XQStaticContext`
      Parameters:
        `prefix` - the prefix for which the namespace URI is sought. Cannot be `null`
      Returns:
        the namespace URI. Cannot be `null`
      Throws:
        `XQException` - if a `null` prefix is specified or if the prefix is unknown

    - #### getOrderingMode

          public int getOrderingMode()

      Description copied from interface: `XQStaticContext`
      Gets the ordering mode defined in the static context.
      Specified by:
        `getOrderingMode` in interface `XQStaticContext`
      Returns:
        ordering mode value. One of: `XQConstants.ORDERING_MODE_ORDERED`, `XQConstants.ORDERING_MODE_UNORDERED`.

    - #### getHoldability

          public int getHoldability()

      Description copied from interface: `XQStaticContext`
      Gets the value of the holdability property.
      Specified by:
        `getHoldability` in interface `XQStaticContext`
      Returns:
        the type of a result's holdability. One of: `XQConstants.HOLDTYPE_HOLD_CURSORS_OVER_COMMIT`, or `XQConstants.HOLDTYPE_CLOSE_CURSORS_AT_COMMIT`.

    - #### getQueryLanguageTypeAndVersion

          public int getQueryLanguageTypeAndVersion()

      Description copied from interface: `XQStaticContext`
      Gets the value of the language type and version property. By default an XQJ implementation's default is `XQConstants.LANGTYPE_XQUERY`.
      Specified by:
        `getQueryLanguageTypeAndVersion` in interface `XQStaticContext`
      Returns:
        the language type and version. One of: `XQConstants.LANGTYPE_XQUERY`, or `XQConstants.LANGTYPE_XQUERYX` or a negative value indicating a vendor specific query language type and version.

    - #### getQueryTimeout

          public int getQueryTimeout()

      Description copied from interface: `XQStaticContext`
      Retrieves the number of seconds an implementation will wait for a query to execute.
      Specified by:
        `getQueryTimeout` in interface `XQStaticContext`
      Returns:
        the query execution timeout value in seconds. A value of 0 indicates no limit.

    - #### getScrollability

          public int getScrollability()

      Description copied from interface: `XQStaticContext`
      Gets the value of the scrollability property. By default query results are forward only.
      Specified by:
        `getScrollability` in interface `XQStaticContext`
      Returns:
        the type of a result's scrollability. One of: `XQConstants.SCROLLTYPE_FORWARD_ONLY`, or `XQConstants.SCROLLTYPE_SCROLLABLE`.

    - #### setBaseURI

          public void setBaseURI​(java.lang.String baseUri)
                          throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the Base URI in the static context, specify the empty string to make it undefined.
      Specified by:
        `setBaseURI` in interface `XQStaticContext`
      Parameters:
        `baseUri` - the new baseUri, or empty string to make it undefined. Cannot be `null`.
      Throws:
        `XQException` - if a `null` base uri is specified

    - #### setBindingMode

          public void setBindingMode​(int bindingMode)
                              throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the binding mode property. By default an XQJ implementation operates in immediate binding mode.
      Specified by:
        `setBindingMode` in interface `XQStaticContext`
      Parameters:
        `bindingMode` - the binding mode. One of: `XQConstants.BINDING_MODE_IMMEDIATE`, or`XQConstants.BINDING_MODE_DEFERRED`.
      Throws:
        `XQException` - the specified mode is different from `XQConstants.BINDING_MODE_IMMEDIATE`, `XQConstants.BINDING_MODE_DEFERRED`

    - #### setBoundarySpacePolicy

          public void setBoundarySpacePolicy​(int policy)
                                      throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the boundary-space policy in the static context.
      Specified by:
        `setBoundarySpacePolicy` in interface `XQStaticContext`
      Parameters:
        `policy` - boundary space policy. One of: `XQConstants.BOUNDARY_SPACE_PRESERVE`, `XQConstants.BOUNDARY_SPACE_STRIP`.
      Throws:
        `XQException` - the specified mode is different from `XQConstants.BOUNDARY_SPACE_PRESERVE`, `XQConstants.BOUNDARY_SPACE_STRIP`

    - #### setConstructionMode

          public void setConstructionMode​(int mode)
                                   throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the construction mode in the static context.
      Specified by:
        `setConstructionMode` in interface `XQStaticContext`
      Parameters:
        `mode` - construction mode value. One of: `XQConstants.CONSTRUCTION_MODE_PRESERVE`, `XQConstants.CONSTRUCTION_MODE_STRIP`.
      Throws:
        `XQException` - the specified mode is different from `XQConstants.CONSTRUCTION_MODE_PRESERVE`, `XQConstants.CONSTRUCTION_MODE_STRIP`

    - #### setContextItemStaticType

          public void setContextItemStaticType​(XQItemType contextItemType)

      Description copied from interface: `XQStaticContext`
      Sets the static type of the context item, specify `null` to make it unspecified.
      Specified by:
        `setContextItemStaticType` in interface `XQStaticContext`
      Parameters:
        `contextItemType` - the static type of the context item; `null` if unspecified.

    - #### setCopyNamespacesModeInherit

          public void setCopyNamespacesModeInherit​(int mode)
                                            throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the inherit part of the copy-namespaces mode in the static context.
      Specified by:
        `setCopyNamespacesModeInherit` in interface `XQStaticContext`
      Parameters:
        `mode` - ordering mode value. One of: `XQConstants.COPY_NAMESPACES_MODE_INHERIT`, `XQConstants.COPY_NAMESPACES_MODE_NO_INHERIT`.
      Throws:
        `XQException` - the specified mode is different from `XQConstants.COPY_NAMESPACES_MODE_INHERIT`, `XQConstants.COPY_NAMESPACES_MODE_NO_INHERIT`

    - #### setCopyNamespacesModePreserve

          public void setCopyNamespacesModePreserve​(int mode)
                                             throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the preserve part of the copy-namespaces mode in the static context.
      Specified by:
        `setCopyNamespacesModePreserve` in interface `XQStaticContext`
      Parameters:
        `mode` - ordering mode value. One of: `XQConstants.COPY_NAMESPACES_MODE_PRESERVE`, `XQConstants.COPY_NAMESPACES_MODE_NO_PRESERVE`.
      Throws:
        `XQException` - the specified mode is different from `XQConstants.COPY_NAMESPACES_MODE_PRESERVE`, `XQConstants.COPY_NAMESPACES_MODE_NO_PRESERVE`

    - #### setDefaultCollation

          public void setDefaultCollation​(java.lang.String uri)
                                   throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the URI of the default collation.
      Specified by:
        `setDefaultCollation` in interface `XQStaticContext`
      Parameters:
        `uri` - the namespace URI of the default collation. Cannot be `null`.
      Throws:
        `XQException` - if a `null` URI is specified

    - #### setDefaultElementTypeNamespace

          public void setDefaultElementTypeNamespace​(java.lang.String uri)
                                              throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the URI of the default element/type namespace, the empty string to make it unspecified.
      Specified by:
        `setDefaultElementTypeNamespace` in interface `XQStaticContext`
      Parameters:
        `uri` - the namespace URI of the default element/type namespace, the empty string to make it unspecified. Cannot be `null`.
      Throws:
        `XQException` - if a `null` uri is specified

    - #### setDefaultFunctionNamespace

          public void setDefaultFunctionNamespace​(java.lang.String uri)
                                           throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the URI of the default function namespace, the empty string to make it unspecified.
      Specified by:
        `setDefaultFunctionNamespace` in interface `XQStaticContext`
      Parameters:
        `uri` - the namespace URI of the default function namespace, the empty string to make it unspecified. Cannot be `null`.
      Throws:
        `XQException` - if a `null` URI is specified

    - #### setDefaultOrderForEmptySequences

          public void setDefaultOrderForEmptySequences​(int order)
                                                throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the default order for empty sequences in the static context.
      Specified by:
        `setDefaultOrderForEmptySequences` in interface `XQStaticContext`
      Parameters:
        `order` - the default order for empty sequences. One of: `XQConstants.DEFAULT_ORDER_FOR_EMPTY_SEQUENCES_GREATEST`, `XQConstants.DEFAULT_ORDER_FOR_EMPTY_SEQUENCES_LEAST`.
      Throws:
        `XQException` - the specified order for empty sequences is different from `XQConstants.DEFAULT_ORDER_FOR_EMPTY_SEQUENCES_GREATEST`, `XQConstants.DEFAULT_ORDER_FOR_EMPTY_SEQUENCES_LEAST`

    - #### setOrderingMode

          public void setOrderingMode​(int mode)
                               throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the ordering mode in the static context.
      Specified by:
        `setOrderingMode` in interface `XQStaticContext`
      Parameters:
        `mode` - ordering mode value. One of: `XQConstants.ORDERING_MODE_ORDERED`, `XQConstants.ORDERING_MODE_UNORDERED`.
      Throws:
        `XQException` - the specified mode is different from `XQConstants.ORDERING_MODE_ORDERED`, `XQConstants.ORDERING_MODE_UNORDERED`

    - #### setQueryTimeout

          public void setQueryTimeout​(int seconds)
                               throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the number of seconds an implementation will wait for a query to execute. If the implementation does not support query timeout it can ignore the specified timeout value. It the limit is exceeded, the behavor of the query is the same as an execution of a cancel by another thread.
      Specified by:
        `setQueryTimeout` in interface `XQStaticContext`
      Parameters:
        `seconds` - the query execution timeout value in seconds. A value of 0 indicates no limit
      Throws:
        `XQException` - if the passed in value is negative

    - #### setHoldability

          public void setHoldability​(int holdability)
                              throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the holdability property.
      Specified by:
        `setHoldability` in interface `XQStaticContext`
      Parameters:
        `holdability` - the holdability of the result. One of: `XQConstants.HOLDTYPE_HOLD_CURSORS_OVER_COMMIT`, or `XQConstants.HOLDTYPE_CLOSE_CURSORS_AT_COMMIT`.
      Throws:
        `XQException` - the specified holdability is different from `XQConstants.HOLDTYPE_HOLD_CURSORS_OVER_COMMIT`, `XQConstants.HOLDTYPE_CLOSE_CURSORS_AT_COMMIT`

    - #### setQueryLanguageTypeAndVersion

          public void setQueryLanguageTypeAndVersion​(int langtype)
                                              throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the input query language type and version. When this is set to a particular language type and version, then the query is assumed to be in that language and version.
      Specified by:
        `setQueryLanguageTypeAndVersion` in interface `XQStaticContext`
      Parameters:
        `langtype` - the query language type and version of the inputs. One of: `XQConstants.LANGTYPE_XQUERY` (default), or `XQConstants.LANGTYPE_XQUERYX`. A negative number indicates a vendor specific query language type and version.
      Throws:
        `XQException` - the specified langtype is different from `XQConstants.LANGTYPE_XQUERY`, `XQConstants.LANGTYPE_XQUERYX` and is not negative

    - #### setScrollability

          public void setScrollability​(int scrollability)
                                throws XQException

      Description copied from interface: `XQStaticContext`
      Sets the scrollability of the result sequence. By default query results are forward only.
      Specified by:
        `setScrollability` in interface `XQStaticContext`
      Parameters:
        `scrollability` - the scrollability of the result. One of: `XQConstants.SCROLLTYPE_FORWARD_ONLY`, or `XQConstants.SCROLLTYPE_SCROLLABLE`.
      Throws:
        `XQException` - the specified crollability type is different from `XQConstants.SCROLLTYPE_FORWARD_ONLY`, `XQConstants.SCROLLTYPE_SCROLLABLE`

    - #### checkNotNull

          protected void checkNotNull​(java.lang.Object arg)
                               throws XQException

      Throws:
        `XQException`