net.sf.saxon.sxpath

## Class AbstractStaticContext

- java.lang.Object
- - net.sf.saxon.sxpath.AbstractStaticContext

- All Implemented Interfaces:
    StaticContext
  Direct Known Subclasses:
    IndependentContext, JAXPXPathStaticContext, UseWhenStaticContext

      public abstract class AbstractStaticContext
      extends Object
      implements StaticContext

  An abstract and configurable implementation of the StaticContext interface, which defines the static context of an XPath expression.

  This class implements those parts of the functionality of a static context that tend to be common to most implementations: simple-valued properties such as base URI and default element namespace; availability of the standard function library; and support for collations.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `usingDefaultFunctionLibrary`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractStaticContext()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addFunctionLibrary(FunctionLibrary library)` Add a function library to the list of function libraries
    `void` | `declareCollation(String name, StringCollator comparator, boolean isDefault)` Declare a named collation
    `String` | `getBaseURI()` Get the Base URI, for resolving any relative URI's used in the expression.
    `StringCollator` | `getCollation(String name)` Get a named collation.
    `CollationMap` | `getCollationMap()` Get the collation map in use
    `int` | `getColumnNumber()` Return the character position where the current document event ends.
    `Configuration` | `getConfiguration()` Get the system configuration
    `DecimalFormatManager` | `getDecimalFormatManager()` Get a DecimalFormatManager to resolve the names of decimal formats used in calls to the format-number() function.
    `String` | `getDefaultCollationName()` Get the name of the default collation.
    `String` | `getDefaultElementNamespace()` Get the default namespace URI for elements and types Return NamespaceConstant.NULL (that is, the zero-length string) for the non-namespace
    `String` | `getDefaultFunctionNamespace()` Get the default function namespace.
    `FunctionLibrary` | `getFunctionLibrary()` Get the function library containing all the in-scope functions available in this static context.
    `int` | `getHostLanguage()` Get the host language (XSLT, XQuery, XPath) used to implement the code in this container
    `int` | `getLineNumber()` Get the line number of the expression within that container.
    `LocationMap` | `getLocationMap()` Get the location map.
    `LocationProvider` | `getLocationProvider()` Get the LocationProvider allowing location identifiers to be resolved.
    `NamePool` | `getNamePool()` Get the NamePool used for compiling expressions
    `String` | `getPublicId()` Return the public identifier.
    `ItemType` | `getRequiredContextItemType()` Get the required type of the context item.
    `String` | `getSystemId()` Get the system ID of the container of the expression.
    `DecimalValue` | `getXPathLanguageLevel()` Get the XPath language level supported, as a string.
    `boolean` | `isAllowedBuiltInType(BuiltInAtomicType type)` Determine whether a built-in type is available in this context.
    `boolean` | `isInBackwardsCompatibleMode()` Determine whether Backwards Compatible Mode is used
    `boolean` | `isSchemaAware()` Ask whether this static context is schema-aware
    `void` | `issueWarning(String s, SourceLocator locator)` Issue a compile-time warning.
    `XPathContext` | `makeEarlyEvaluationContext()` Construct a dynamic context for early evaluation of constant subexpressions
    `void` | `setBackwardsCompatibilityMode(boolean option)` Set XPath 1.0 backwards compatibility mode on or off
    `void` | `setBaseURI(String baseURI)` Set the base URI in the static context
    `void` | `setCollationMap(CollationMap collationMap)` Set a collation map to override use of the default collation map from the configuration
    `protected void` | `setConfiguration(Configuration config)` Set the Configuration.
    `void` | `setDecimalFormatManager(DecimalFormatManager manager)` Set the DecimalFormatManager used to resolve the names of decimal formats used in calls to the format-number() function.
    `void` | `setDefaultElementNamespace(String uri)` Set the default namespace for elements and types
    `protected void` | `setDefaultFunctionLibrary()` Initialize the default function library for XPath.
    `void` | `setDefaultFunctionNamespace(String uri)` Set the default function namespace
    `void` | `setFunctionLibrary(FunctionLibraryList lib)` Set the function library to be used
    `void` | `setLocationMap(LocationMap locationMap)` Set the location map, which is used for translating location identifiers into URIs and line numbers
    `void` | `setSchemaAware(boolean aware)` Say whether this static context is schema-aware
    `void` | `setXPathLanguageLevel(DecimalValue level)` Set the XPath language level supported, as a string.

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

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

    - ### Methods inherited from interface net.sf.saxon.expr.StaticContext

      `bindVariable, getImportedSchemaNamespaces, getNamespaceResolver, getURIForPrefix, isImportedSchema`

- - ### Field Detail

    - #### usingDefaultFunctionLibrary

          protected boolean usingDefaultFunctionLibrary

  - ### Constructor Detail

    - #### AbstractStaticContext

          public AbstractStaticContext()

  - ### Method Detail

    - #### setConfiguration

          protected void setConfiguration(Configuration config)

      Set the Configuration. This is protected so it can be used only by subclasses; the configuration will normally be set at construction time
      Parameters:
        `config` - the configuration

    - #### getConfiguration

          public Configuration getConfiguration()

      Get the system configuration
      Specified by:
        `getConfiguration` in interface `StaticContext`
      Returns:
        the Saxon configuration

    - #### setCollationMap

          public void setCollationMap(CollationMap collationMap)

      Set a collation map to override use of the default collation map from the configuration
      Parameters:
        `collationMap` - the collation map to be used

    - #### getCollationMap

          public CollationMap getCollationMap()

      Get the collation map in use
      Returns:
        the collation map

    - #### setSchemaAware

          public void setSchemaAware(boolean aware)

      Say whether this static context is schema-aware
      Parameters:
        `aware` - true if this static context is schema-aware

    - #### isSchemaAware

          public boolean isSchemaAware()

      Ask whether this static context is schema-aware
      Specified by:
        `isSchemaAware` in interface `StaticContext`
      Returns:
        true if this context is schema-aware

    - #### setDefaultFunctionLibrary

          protected final void setDefaultFunctionLibrary()

      Initialize the default function library for XPath. This can be overridden using setFunctionLibrary().

    - #### addFunctionLibrary

          protected final void addFunctionLibrary(FunctionLibrary library)

      Add a function library to the list of function libraries
      Parameters:
        `library` - the function library to be added

    - #### getHostLanguage

          public int getHostLanguage()

      Get the host language (XSLT, XQuery, XPath) used to implement the code in this container
      Returns:
        the value `Configuration.XPATH`

    - #### makeEarlyEvaluationContext

          public XPathContext makeEarlyEvaluationContext()

      Construct a dynamic context for early evaluation of constant subexpressions
      Specified by:
        `makeEarlyEvaluationContext` in interface `StaticContext`
      Returns:
        a newly constructed dynamic context

    - #### getLocationMap

          public LocationMap getLocationMap()

      Description copied from interface: `StaticContext`
      Get the location map. This is a mapping from short location ids held with each expression or subexpression, to a fully-resolved location in a source stylesheet or query.
      Specified by:
        `getLocationMap` in interface `StaticContext`
      Returns:
        the location map

    - #### setLocationMap

          public void setLocationMap(LocationMap locationMap)

      Set the location map, which is used for translating location identifiers into URIs and line numbers
      Parameters:
        `locationMap` - the location map to be used

    - #### setBaseURI

          public void setBaseURI(String baseURI)

      Set the base URI in the static context
      Parameters:
        `baseURI` - the base URI of the expression; the value null is allowed to indicate that the base URI is not available.

    - #### getBaseURI

          public String getBaseURI()

      Get the Base URI, for resolving any relative URI's used in the expression. Used by the document() function, resolve-uri(), etc.
      Specified by:
        `getBaseURI` in interface `StaticContext`
      Returns:
        "" if no base URI has been set

    - #### getFunctionLibrary

          public FunctionLibrary getFunctionLibrary()

      Get the function library containing all the in-scope functions available in this static context. This method is called by the XPath parser when binding a function call in the XPath expression to an implementation of the function.
      Specified by:
        `getFunctionLibrary` in interface `StaticContext`
      Returns:
        the function library

    - #### setFunctionLibrary

          public void setFunctionLibrary(FunctionLibraryList lib)

      Set the function library to be used
      Parameters:
        `lib` - the function library

    - #### declareCollation

          public void declareCollation(String name,
                              StringCollator comparator,
                              boolean isDefault)

      Declare a named collation
      Parameters:
        `name` - The name of the collation (technically, a URI)
        `comparator` - The StringCollator used to implement the collating sequence
        `isDefault` - True if this is to be used as the default collation

    - #### getCollation

          public StringCollator getCollation(String name)

      Get a named collation.
      Specified by:
        `getCollation` in interface `StaticContext`
      Parameters:
        `name` - The name of the required collation. Supply null to get the default collation.
      Returns:
        the collation identified by the given name, as set previously using declareCollation. Return null if no collation with this name is found.

    - #### getDefaultCollationName

          public String getDefaultCollationName()

      Get the name of the default collation.
      Specified by:
        `getDefaultCollationName` in interface `StaticContext`
      Returns:
        the name of the default collation; or the name of the codepoint collation if no default collation has been defined

    - #### getNamePool

          public NamePool getNamePool()

      Get the NamePool used for compiling expressions
      Specified by:
        `getNamePool` in interface `StaticContext`
      Returns:
        the name pool

    - #### issueWarning

          public void issueWarning(String s,
                          SourceLocator locator)

      Issue a compile-time warning. This method is used during XPath expression compilation to output warning conditions. The default implementation writes the message to the error listener registered with the Configuration.
      Specified by:
        `issueWarning` in interface `StaticContext`
      Parameters:
        `s` - The warning message. This should not contain any prefix such as "Warning".
        `locator` - the location of the construct in question. May be null.

    - #### getSystemId

          public String getSystemId()

      Get the system ID of the container of the expression. Used to construct error messages.
      Specified by:
        `getSystemId` in interface `StaticContext`
      Returns:
        "" always

    - #### getLineNumber

          public int getLineNumber()

      Get the line number of the expression within that container. Used to construct error messages.
      Specified by:
        `getLineNumber` in interface `StaticContext`
      Returns:
        -1 always

    - #### getDefaultElementNamespace

          public String getDefaultElementNamespace()

      Get the default namespace URI for elements and types Return NamespaceConstant.NULL (that is, the zero-length string) for the non-namespace
      Specified by:
        `getDefaultElementNamespace` in interface `StaticContext`
      Returns:
        the default namespace for elements and type

    - #### setDefaultElementNamespace

          public void setDefaultElementNamespace(String uri)

      Set the default namespace for elements and types
      Parameters:
        `uri` - the namespace to be used for unprefixed element and type names. The value "" (or NamespaceConstant.NULL) represents the non-namespace

    - #### setDefaultFunctionNamespace

          public void setDefaultFunctionNamespace(String uri)

      Set the default function namespace
      Parameters:
        `uri` - the namespace to be used for unprefixed function names. The value "" (or NamespaceConstant.NULL) represents the non-namespace

    - #### getDefaultFunctionNamespace

          public String getDefaultFunctionNamespace()

      Get the default function namespace. The value "" (or NamespaceConstant.NULL) represents the non-namespace
      Specified by:
        `getDefaultFunctionNamespace` in interface `StaticContext`
      Returns:
        the default namesapce for functions

    - #### setXPathLanguageLevel

          public void setXPathLanguageLevel(DecimalValue level)

      Set the XPath language level supported, as a string. The current levels supported are 2.0, and 3.0. The default is 2.0. If running XQuery 1.0, the value is "2.0"; if running XQuery 3.0, it is 3.0.
      Parameters:
        `level` - the XPath language level
      Since:
        9.3

    - #### getXPathLanguageLevel

          public DecimalValue getXPathLanguageLevel()

      Get the XPath language level supported, as a string. The current levels supported are "2.0", and "3.0". The default is "2.0". If running XQuery 1.0, the value is "2.0"; if running XQuery 3.0, it is "3.0".
      Specified by:
        `getXPathLanguageLevel` in interface `StaticContext`
      Returns:
        the XPath language level
      Since:
        9.3

    - #### setBackwardsCompatibilityMode

          public void setBackwardsCompatibilityMode(boolean option)

      Set XPath 1.0 backwards compatibility mode on or off
      Parameters:
        `option` - true if XPath 1.0 compatibility mode is to be set to true; otherwise false

    - #### isInBackwardsCompatibleMode

          public boolean isInBackwardsCompatibleMode()

      Determine whether Backwards Compatible Mode is used
      Specified by:
        `isInBackwardsCompatibleMode` in interface `StaticContext`
      Returns:
        true if XPath 1.0 compatibility mode is to be set to true; otherwise false

    - #### isAllowedBuiltInType

          public boolean isAllowedBuiltInType(BuiltInAtomicType type)

      Determine whether a built-in type is available in this context. This method caters for differences between host languages as to which set of types are built in.
      Specified by:
        `isAllowedBuiltInType` in interface `StaticContext`
      Parameters:
        `type` - the supposedly built-in type. This will always be a type in the XS namespace.
      Returns:
        true if this type can be used in this static context

    - #### setDecimalFormatManager

          public void setDecimalFormatManager(DecimalFormatManager manager)

      Set the DecimalFormatManager used to resolve the names of decimal formats used in calls to the format-number() function.
      Parameters:
        `manager` - the decimal format manager for this static context, or null if no named decimal formats are available in this environment.

    - #### getRequiredContextItemType

          public ItemType getRequiredContextItemType()

      Get the required type of the context item. If no type has been explicitly declared for the context item, an instance of AnyItemType (representing the type item()) is returned.
      Specified by:
        `getRequiredContextItemType` in interface `StaticContext`
      Returns:
        the required type of the context item
      Since:
        9.3

    - #### getDecimalFormatManager

          public DecimalFormatManager getDecimalFormatManager()

      Get a DecimalFormatManager to resolve the names of decimal formats used in calls to the format-number() function.
      Specified by:
        `getDecimalFormatManager` in interface `StaticContext`
      Returns:
        the decimal format manager for this static context; a newly created empty DecimalFormatManager if none has been supplied
      Since:
        9.2

    - #### getLocationProvider

          public LocationProvider getLocationProvider()

      Get the LocationProvider allowing location identifiers to be resolved.
      Returns:
        the LocationProvider that translates location identifiers into URIs and line numbers

    - #### getPublicId

          public String getPublicId()

      Return the public identifier.

      The return value is the public identifier of the document entity or of the external parsed entity in which the markup that triggered the event appears.

      Returns:
        null (always).
      See Also:
        `getSystemId()`

    - #### getColumnNumber

          public int getColumnNumber()

      Return the character position where the current document event ends.
      Returns:
        -1 (no column number is available).
      See Also:
        `getLineNumber()`

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