ExpressionContext
Date: 2016-07-03

com.icl.saxon.style

## Class ExpressionContext

- java.lang.Object
- - com.icl.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

    Constructors
    Constructor and Description
    `ExpressionContext(StyleElement styleElement)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `allowsKeyFunction()` Determine whether the key() function is permmitted in this context
    `Binding` | `bindVariable(int fingerprint)` Bind a variable to an object that can be used to refer to it
    `boolean` | `forwardsCompatibleModeIsEnabled()` Determine whether forwards-compatible mode is enabled
    `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.lang.Class` | `getExternalJavaClass(java.lang.String uri)` Get an external Java class corresponding to a given namespace prefix, if there is one.
    `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
    `Function` | `getStyleSheetFunction(int fingerprint)`
    `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
    `java.lang.String` | `getVersion()` Get the effective XSLT version in this region of the stylesheet
    `boolean` | `isElementAvailable(java.lang.String qname)` Determine if an extension element is available
    `boolean` | `isExtensionNamespace(short uriCode)` Determine whether a given URI code identifies an extension element namespace
    `boolean` | `isFunctionAvailable(java.lang.String qname)` Determine if a function is available
    `int` | `makeNameCode(java.lang.String qname, boolean useDefault)` Make a NameCode, using this Element as the context for namespace resolution
    `NamespaceTest` | `makeNamespaceTest(short nodeType, java.lang.String prefix)` Make a NamespaceTest, using this element as the context for namespace resolution
    `NameTest` | `makeNameTest(short nodeType, java.lang.String qname, boolean useDefault)` Make a NameTest, using this element as the context for namespace resolution
    `StaticContext` | `makeRuntimeContext(NamePool pool)` Create a context for parsing XPath expressions at runtime, using this styelsheet element for namespace declarations, variables, etc, but using the runtime NamePool
    `java.lang.String` | `toString()` String representation for diagnostics

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

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

- - ### Constructor Detail

    - #### ExpressionContext

          public ExpressionContext(StyleElement styleElement)

  - ### Method Detail

    - #### makeRuntimeContext

          public StaticContext makeRuntimeContext(NamePool pool)

      Create a context for parsing XPath expressions at runtime, using this styelsheet element for namespace declarations, variables, etc, but using the runtime NamePool
      Specified by:
        `makeRuntimeContext` 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
      Specified by:
        `getURIForPrefix` in interface `StaticContext`
      Parameters:
        `prefix` - The prefix
      Throws:
        `XPathException`

    - #### makeNameCode

          public final int makeNameCode(java.lang.String qname,
                         boolean useDefault)
                                 throws XPathException

      Make a NameCode, using this Element as the context for namespace resolution
      Specified by:
        `makeNameCode` in interface `StaticContext`
      Parameters:
        `qname` - The name as written, in the form "[prefix:]localname"
      Throws:
        `XPathException`

    - #### 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
      Specified by:
        `getFingerprint` in interface `StaticContext`
      Parameters:
        `qname` - The name as written, in the form "[prefix:]localname"
      Returns:
        -1 if the name is not already present in the name pool
      Throws:
        `XPathException`

    - #### makeNameTest

          public NameTest makeNameTest(short nodeType,
                              java.lang.String qname,
                              boolean useDefault)
                                throws XPathException

      Make a NameTest, using this element as the context for namespace resolution
      Specified by:
        `makeNameTest` in interface `StaticContext`
      Throws:
        `XPathException`

    - #### makeNamespaceTest

          public NamespaceTest makeNamespaceTest(short nodeType,
                                        java.lang.String prefix)
                                          throws XPathException

      Make a NamespaceTest, using this element as the context for namespace resolution
      Specified by:
        `makeNamespaceTest` in interface `StaticContext`
      Throws:
        `XPathException`

    - #### bindVariable

          public Binding 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 Binding object that can be used to identify it in the Bindery
      Throws:
        `XPathException` - if the variable has not been declared

    - #### isExtensionNamespace

          public boolean isExtensionNamespace(short uriCode)
                                       throws XPathException

      Determine whether a given URI code identifies an extension element namespace
      Specified by:
        `isExtensionNamespace` in interface `StaticContext`
      Throws:
        `XPathException`

    - #### forwardsCompatibleModeIsEnabled

          public boolean forwardsCompatibleModeIsEnabled()
                                                  throws XPathException

      Determine whether forwards-compatible mode is enabled
      Specified by:
        `forwardsCompatibleModeIsEnabled` in interface `StaticContext`
      Throws:
        `XPathException`

    - #### getStyleSheetFunction

          public Function getStyleSheetFunction(int fingerprint)
                                         throws XPathException

      Specified by:
        `getStyleSheetFunction` in interface `StaticContext`
      Throws:
        `XPathException`

    - #### getExternalJavaClass

          public java.lang.Class getExternalJavaClass(java.lang.String uri)
                                               throws javax.xml.transform.TransformerException

      Get an external Java class corresponding to a given namespace prefix, if there is one.
      Specified by:
        `getExternalJavaClass` in interface `StaticContext`
      Parameters:
        `uri` - The namespace URI corresponding to the prefix used in the function call.
      Returns:
        the Java class name if a suitable class exists, otherwise return null.
      Throws:
        `javax.xml.transform.TransformerException` - if the class is found, but cannot be loaded.

    - #### isElementAvailable

          public boolean isElementAvailable(java.lang.String qname)
                                     throws XPathException

      Determine if an extension element is available
      Specified by:
        `isElementAvailable` in interface `StaticContext`
      Throws:
        `XPathException` - if the name is invalid or the prefix is not declared

    - #### isFunctionAvailable

          public boolean isFunctionAvailable(java.lang.String qname)
                                      throws XPathException

      Determine if a function is available
      Specified by:
        `isFunctionAvailable` in interface `StaticContext`
      Throws:
        `XPathException`

    - #### allowsKeyFunction

          public boolean allowsKeyFunction()

      Determine whether the key() function is permmitted in this context
      Specified by:
        `allowsKeyFunction` in interface `StaticContext`

    - #### getVersion

          public java.lang.String getVersion()

      Get the effective XSLT version in this region of the stylesheet
      Specified by:
        `getVersion` in interface `StaticContext`

    - #### toString

          public java.lang.String toString()

      String representation for diagnostics
      Overrides:
        `toString` in class `java.lang.Object`