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.

  • Constructor Details

    • AbstractStaticContext

      public AbstractStaticContext()
  • Method Details

    • 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
    • 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
    • getExecutable

      public Executable getExecutable()
      Get the Executable (representing a complete stylesheet or query)
      Returns:
      the executable
    • 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
    • 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(FunctionLibrary 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 System.err. To change the destination of messages, create a subclass of StandaloneContext that overrides this method.
      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
    • setBackwardsCompatibilityMode

      public void setBackwardsCompatibilityMode(boolean compatible)
      Set XPath 1.0 compatibility mode on or off (by default, it is false)
      Parameters:
      compatible - true if XPath 1.0 compatibility mode is to be set to true, false if it is to be set to false.
    • isInBackwardsCompatibleMode

      public boolean isInBackwardsCompatibleMode()
      Determine whether Backwards Compatible Mode is used
      Specified by:
      isInBackwardsCompatibleMode in interface StaticContext
      Returns:
      true if XPath 1.0 backwards compatibility has been selected (by default, it is 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
    • 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
    • replaceSubExpression

      public boolean replaceSubExpression(Expression original, Expression replacement)
      Replace one subexpression by a replacement subexpression
      Parameters:
      original - the original subexpression
      replacement - the replacement subexpression
      Returns:
      true if the original subexpression was found
      Throws:
      UnsupportedOperationException - (always)
    • 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:
    • getColumnNumber

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