Package net.sf.saxon.sxpath
Class AbstractStaticContext
java.lang.Object
net.sf.saxon.sxpath.AbstractStaticContext
- All Implemented Interfaces:
StaticContext
- Direct Known Subclasses:
IndependentContext,JAXPXPathStaticContext,UseWhenStaticContext
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidaddFunctionLibrary(FunctionLibrary library) Add a function library to the list of function librariesvoiddeclareCollation(String name, StringCollator comparator, boolean isDefault) Declare a named collationGet the Base URI, for resolving any relative URI's used in the expression.getCollation(String name) Get a named collation.intReturn the character position where the current document event ends.Get the system configurationGet the name of the default collation.Get the default namespace URI for elements and types Return NamespaceConstant.NULL (that is, the zero-length string) for the non-namespaceGet the default function namespace.Get the Executable (representing a complete stylesheet or query)Get the function library containing all the in-scope functions available in this static context.intGet the host language (XSLT, XQuery, XPath) used to implement the code in this containerintGet the line number of the expression within that container.Get the location map.Get the LocationProvider allowing location identifiers to be resolved.Get the NamePool used for compiling expressionsReturn the public identifier.Get the system ID of the container of the expression.booleanDetermine whether a built-in type is available in this context.booleanDetermine whether Backwards Compatible Mode is usedvoidissueWarning(String s, SourceLocator locator) Issue a compile-time warning.Construct a dynamic context for early evaluation of constant subexpressionsbooleanreplaceSubExpression(Expression original, Expression replacement) Replace one subexpression by a replacement subexpressionvoidsetBackwardsCompatibilityMode(boolean compatible) Set XPath 1.0 compatibility mode on or off (by default, it is false)voidsetBaseURI(String baseURI) Set the base URI in the static contextprotected voidsetConfiguration(Configuration config) Set the Configuration.voidSet the default namespace for elements and typesprotected final voidInitialize the default function library for XPath.voidSet the default function namespacevoidSet the function library to be usedvoidsetLocationMap(LocationMap locationMap) Set the location map, which is used for translating location identifiers into URIs and line numbersMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.sf.saxon.expr.StaticContext
bindVariable, getImportedSchemaNamespaces, getNamespaceResolver, getURIForPrefix, isImportedSchema
-
Constructor Details
-
AbstractStaticContext
public AbstractStaticContext()
-
-
Method Details
-
setConfiguration
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
Get the system configuration- Specified by:
getConfigurationin interfaceStaticContext- Returns:
- the Saxon configuration
-
setDefaultFunctionLibrary
protected final void setDefaultFunctionLibrary()Initialize the default function library for XPath. This can be overridden using setFunctionLibrary(). -
addFunctionLibrary
Add a function library to the list of function libraries- Parameters:
library- the function library to be added
-
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
Construct a dynamic context for early evaluation of constant subexpressions- Specified by:
makeEarlyEvaluationContextin interfaceStaticContext- Returns:
- a newly constructed dynamic context
-
getLocationMap
Description copied from interface:StaticContextGet 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:
getLocationMapin interfaceStaticContext- Returns:
- the location map
-
setLocationMap
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
Set the base URI in the static context- Parameters:
baseURI- the base URI of the expression
-
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:
getBaseURIin interfaceStaticContext- Returns:
- "" if no base URI has been set
-
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:
getFunctionLibraryin interfaceStaticContext- Returns:
- the function library
-
setFunctionLibrary
Set the function library to be used- Parameters:
lib- the function library
-
declareCollation
Declare a named collation- Parameters:
name- The name of the collation (technically, a URI)comparator- The StringCollator used to implement the collating sequenceisDefault- True if this is to be used as the default collation
-
getCollation
Get a named collation.- Specified by:
getCollationin interfaceStaticContext- 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
Get the name of the default collation.- Specified by:
getDefaultCollationNamein interfaceStaticContext- Returns:
- the name of the default collation; or the name of the codepoint collation if no default collation has been defined
-
getNamePool
Get the NamePool used for compiling expressions- Specified by:
getNamePoolin interfaceStaticContext- Returns:
- the name pool
-
issueWarning
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:
issueWarningin interfaceStaticContext- 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
Get the system ID of the container of the expression. Used to construct error messages.- Specified by:
getSystemIdin interfaceStaticContext- Returns:
- "" always
-
getLineNumber
public int getLineNumber()Get the line number of the expression within that container. Used to construct error messages.- Specified by:
getLineNumberin interfaceStaticContext- Returns:
- -1 always
-
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:
getDefaultElementNamespacein interfaceStaticContext- Returns:
- the default namespace for elements and type
-
setDefaultElementNamespace
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
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
Get the default function namespace. The value "" (or NamespaceConstant.NULL) represents the non-namespace- Specified by:
getDefaultFunctionNamespacein interfaceStaticContext- 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:
isInBackwardsCompatibleModein interfaceStaticContext- Returns:
- true if XPath 1.0 backwards compatibility has been selected (by default, it is false)
-
isAllowedBuiltInType
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:
isAllowedBuiltInTypein interfaceStaticContext- 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
Get the LocationProvider allowing location identifiers to be resolved.- Returns:
- the LocationProvider that translates location identifiers into URIs and line numbers
-
replaceSubExpression
Replace one subexpression by a replacement subexpression- Parameters:
original- the original subexpressionreplacement- the replacement subexpression- Returns:
- true if the original subexpression was found
- Throws:
UnsupportedOperationException- (always)
-
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:
-