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.
addFunctionLibrary
protected final void addFunctionLibrary(FunctionLibrary library)
Add a function library to the list of function libraries
library
- the function library to be added
declareCollation
public void declareCollation(String name,
StringCollator comparator,
boolean isDefault)
Declare a named collation
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
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.
- getBaseURI in interface StaticContext
- "" if no base URI has been set
getCollation
public StringCollator getCollation(String name)
Get a named collation.
- getCollation in interface StaticContext
- the collation identified by the given name, as set previously using declareCollation.
Return null if no collation with this name is found.
getColumnNumber
public int getColumnNumber()
Return the character position where the current document event ends.
- -1 (no column number is available).
getDefaultCollationName
public String getDefaultCollationName()
Get the name of the default collation.
- getDefaultCollationName in interface StaticContext
- the name of the default collation; or the name of the codepoint collation
if no default collation has been defined
getDefaultElementNamespace
public String getDefaultElementNamespace()
Get the default XPath namespace URI
Return NamespaceConstant.NULL for the non-namespace
- getDefaultElementNamespace in interface StaticContext
getExecutable
public Executable getExecutable()
Get the Executable (representing a complete stylesheet or query)
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.
- getFunctionLibrary in interface StaticContext
getHostLanguage
public int getHostLanguage()
Get the host language (XSLT, XQuery, XPath) used to implement the code in this container
getLineNumber
public int getLineNumber()
Get the line number of the expression within that container.
Used to construct error messages.
- getLineNumber in interface StaticContext
getLocationProvider
public LocationProvider getLocationProvider()
Get the LocationProvider allowing location identifiers to be resolved.
- 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.
getSystemId
public String getSystemId()
Get the system ID of the container of the expression. Used to construct error messages.
- getSystemId in interface StaticContext
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.
- isAllowedBuiltInType in interface StaticContext
type
- the supposedly built-in type. This will always be a type in the XS namespace.
- true if this type can be used in this static context
isInBackwardsCompatibleMode
public boolean isInBackwardsCompatibleMode()
Determine whether Backwards Compatible Mode is used
- isInBackwardsCompatibleMode in interface StaticContext
- true if XPath 1.0 backwards compatibility has been selected (by default,
it is false)
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.
- issueWarning in interface StaticContext
replaceSubExpression
public boolean replaceSubExpression(Expression original,
Expression replacement)
Replace one subexpression by a replacement subexpression
original
- the original subexpressionreplacement
- the replacement subexpression
- true if the original subexpression was found
setBackwardsCompatibilityMode
public void setBackwardsCompatibilityMode(boolean compatible)
Set XPath 1.0 compatibility mode on or off (by default, it is false)
compatible
- true if XPath 1.0 compatibility mode is to be set to true, false
if it is to be set to false.
setBaseURI
public void setBaseURI(String baseURI)
Set the base URI in the static context
baseURI
- the base URI of the expression
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
config
- the configuration
setDefaultElementNamespace
public void setDefaultElementNamespace(String uri)
Set the default namespace for elements and types
uri
- the namespace to be used for unprefixed element and type names
setDefaultFunctionLibrary
protected final void setDefaultFunctionLibrary()
Initialize the default function library for XPath.
This can be overridden using setFunctionLibrary().
setDefaultFunctionNamespace
public void setDefaultFunctionNamespace(String uri)
Set the default function namespace
uri
- the namespace to be used for unprefixed function names
setFunctionLibrary
public void setFunctionLibrary(FunctionLibrary lib)
Set the function library to be used
lib
- the function library
setLocationMap
public void setLocationMap(LocationMap locationMap)
Set the location map, which is used for translating location identifiers into URIs and line
numbers
locationMap
- the location map to be used