net.sf.saxon.style
Class ExpressionContext

java.lang.Object
  |
  +--net.sf.saxon.style.ExpressionContext
All Implemented Interfaces:
StaticContext

public class ExpressionContext
extends java.lang.Object
implements StaticContext

An ExpressionContext represents the context for an XPath expression written in the stylesheet.


Constructor Summary
ExpressionContext(StyleElement styleElement)
           
 
Method Summary
 Expression bindFunction(java.lang.String qname, Expression[] arguments)
          Identify a function appearing in an expression.
 VariableDeclaration bindVariable(int fingerprint)
          Bind a variable to an object that can be used to refer to it
 java.lang.String getBaseURI()
          Get the Base URI of the element containing the expression, for resolving any relative URI's used in the expression.
 java.util.Comparator getCollation(java.lang.String name)
          Get a named collation.
 Configuration getConfiguration()
          Get the system configuration
 java.lang.String getDefaultCollationName()
          Get the default collation.
 short getDefaultElementNamespace()
          Get the default XPath namespace, as a namespace code that can be looked up in the NamePool
 int getFingerprint(java.lang.String qname, boolean useDefault)
          Get a fingerprint for a name, using this as the context for namespace resolution
 int getLineNumber()
          Get the line number of the expression within its containing entity Returns -1 if no line number is available
 NamePool getNamePool()
          Get the NamePool used for compiling expressions
 NamespaceContext getNamespaceContext()
          Get a copy of the Namespace Context
 StyleElement getStyleElement()
           
 java.lang.String getSystemId()
          Get the System ID of the entity containing the expression (used for diagnostics)
 java.lang.String getURIForPrefix(java.lang.String prefix)
          Get the URI for a prefix, using this Element as the context for namespace resolution.
 XSLStyleSheet getXSLStyleSheet()
          Get the XSLStyleSheet object
 boolean isElementAvailable(java.lang.String qname)
          Determine if an extension element is available
 boolean isFunctionAvailable(java.lang.String qname, long arity)
          Determine if a function is available.
 boolean isImportedSchema(java.lang.String namespace)
          Determine whether a Schema for a given target namespace has been imported
 boolean isInBackwardsCompatibleMode()
          Determine whether Backwards Compatible Mode is used
 void issueWarning(java.lang.String s)
          Issue a compile-time warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExpressionContext

public ExpressionContext(StyleElement styleElement)
Method Detail

getConfiguration

public Configuration getConfiguration()
Get the system configuration

Specified by:
getConfiguration in interface StaticContext

issueWarning

public void issueWarning(java.lang.String s)
Issue a compile-time warning

Specified by:
issueWarning in interface StaticContext

getNamePool

public NamePool getNamePool()
Get the NamePool used for compiling expressions

Specified by:
getNamePool in interface StaticContext

getSystemId

public java.lang.String getSystemId()
Get the System ID of the entity containing the expression (used for diagnostics)

Specified by:
getSystemId in interface StaticContext

getLineNumber

public int getLineNumber()
Get the line number of the expression within its containing entity Returns -1 if no line number is available

Specified by:
getLineNumber in interface StaticContext

getBaseURI

public java.lang.String getBaseURI()
Get the Base URI of the element containing the expression, for resolving any relative URI's used in the expression. Used by the document() function.

Specified by:
getBaseURI in interface StaticContext

getURIForPrefix

public java.lang.String getURIForPrefix(java.lang.String prefix)
                                 throws XPathException
Get the URI for a prefix, using this Element as the context for namespace resolution. The default namespace will not be used when the prefix is empty.

Specified by:
getURIForPrefix in interface StaticContext
Parameters:
prefix - The prefix
Throws:
XPathException - if the prefix is not declared

getNamespaceContext

public NamespaceContext getNamespaceContext()
Get a copy of the Namespace Context


getFingerprint

public int getFingerprint(java.lang.String qname,
                          boolean useDefault)
                   throws XPathException
Get a fingerprint for a name, using this as the context for namespace resolution

Parameters:
qname - The name as written, in the form "[prefix:]localname"
useDefault - Defines the action when there is no prefix. If true, use the default namespace URI (as for element names). If false, use no namespace URI (as for attribute names).
Returns:
-1 if the name is not already present in the name pool
XPathException

bindVariable

public VariableDeclaration bindVariable(int fingerprint)
                                 throws XPathException
Bind a variable to an object that can be used to refer to it

Specified by:
bindVariable in interface StaticContext
Parameters:
fingerprint - The fingerprint of the variable name
Returns:
a VariableDeclaration object that can be used to identify it in the Bindery
Throws:
XPathException - if the variable has not been declared

bindFunction

public Expression bindFunction(java.lang.String qname,
                               Expression[] arguments)
                        throws XPathException
Identify a function appearing in an expression. Following XSLT rules, this method doesn't throw a static error if no function with the given name exists, unless the name is unprefixed. Rather, it returns an error expression that will fail at run-time if the function is actually called.

Specified by:
bindFunction in interface StaticContext
Returns:
an Expression representing the function call. This will normally be a FunctionCall, but it may be rewritten as some other expression.
XPathException

isElementAvailable

public boolean isElementAvailable(java.lang.String qname)
                           throws XPathException
Determine if an extension element is available

Throws:
XPathException - if the name is invalid or the prefix is not declared

isFunctionAvailable

public boolean isFunctionAvailable(java.lang.String qname,
                                   long arity)
                            throws XPathException
Determine if a function is available. This method is used to implement function-available() in the common case that the argument is known at compile-time. For the dynamic implementation, see functions.Available.

Parameters:
qname - the function name
arity - the required arity; set to -1 if any arity will do
XPathException
See Also:
Available

getCollation

public java.util.Comparator getCollation(java.lang.String name)
                                  throws XPathException
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; or null if the required collation is not found.
XPathException

getDefaultCollationName

public java.lang.String getDefaultCollationName()
Get the default collation. Return null if no default collation has been defined

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

getDefaultElementNamespace

public short getDefaultElementNamespace()
Get the default XPath namespace, as a namespace code that can be looked up in the NamePool

Specified by:
getDefaultElementNamespace in interface StaticContext

isInBackwardsCompatibleMode

public boolean isInBackwardsCompatibleMode()
Determine whether Backwards Compatible Mode is used

Specified by:
isInBackwardsCompatibleMode in interface StaticContext

isImportedSchema

public boolean isImportedSchema(java.lang.String namespace)
Description copied from interface: StaticContext
Determine whether a Schema for a given target namespace has been imported

Specified by:
isImportedSchema in interface StaticContext

getXSLStyleSheet

public XSLStyleSheet getXSLStyleSheet()
Get the XSLStyleSheet object


getStyleElement

public StyleElement getStyleElement()