org.apache.xalan.extensions

## Class ExtensionsTable

- java.lang.Object
- - org.apache.xalan.extensions.ExtensionsTable

    public class ExtensionsTable
    extends java.lang.Object

Class holding a table registered extension namespace handlers

Usage:
  **For internal use only**

### Field Summary

Fields
`java.util.Hashtable` `m_extensionFunctionNamespaces` Table of extensions that may be called from the expression language via the call(name, ...) function.

### Constructor Summary

Constructors
Constructor and Description
`ExtensionsTable(StylesheetRoot sroot)` The constructor (called from TransformerImpl) registers the StylesheetRoot for the transformation and instantiates an ExtensionHandler for each extension namespace.

### Method Summary

Methods
`void` `addExtensionNamespace(java.lang.String uri, ExtensionHandler extNS)` Register an extension namespace handler.
`boolean` `elementAvailable(java.lang.String ns, java.lang.String elemName)` Execute the element-available() function.
`java.lang.Object` `extFunction(FuncExtFunction extFunction, java.util.Vector argVec, ExpressionContext exprContext)` Handle an extension function.
`java.lang.Object` `extFunction(java.lang.String ns, java.lang.String funcName, java.util.Vector argVec, java.lang.Object methodKey, ExpressionContext exprContext)` Handle an extension function.
`boolean` `functionAvailable(java.lang.String ns, java.lang.String funcName)` Execute the function-available() function.
`ExtensionHandler` `get(java.lang.String extns)` Get an ExtensionHandler object that represents the given namespace.

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

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### m_extensionFunctionNamespaces

    public java.util.Hashtable m_extensionFunctionNamespaces

Table of extensions that may be called from the expression language via the call(name, ...) function. Objects are keyed on the call name.

Usage:
  **For internal use only**

### Constructor Detail

#### ExtensionsTable

    public ExtensionsTable(StylesheetRoot sroot)
                    throws TransformerException

The constructor (called from TransformerImpl) registers the StylesheetRoot for the transformation and instantiates an ExtensionHandler for each extension namespace.

Throws:
  `TransformerException`
Usage:
  **For advanced use only**

### Method Detail

#### get

    public ExtensionHandler get(java.lang.String extns)

Get an ExtensionHandler object that represents the given namespace.

Parameters:
  `extns` - A valid extension namespace.
Returns:
  ExtensionHandler object that represents the given namespace.

#### addExtensionNamespace

    public void addExtensionNamespace(java.lang.String uri,
                             ExtensionHandler extNS)

Register an extension namespace handler. This handler provides functions for testing whether a function is known within the namespace and also for invoking the functions.

Parameters:
  `uri` - the URI for the extension.
  `extNS` - the extension handler.
Usage:
  **For advanced use only**

#### functionAvailable

    public boolean functionAvailable(java.lang.String ns,
                            java.lang.String funcName)
                              throws TransformerException

Execute the function-available() function.

Parameters:
  `ns` - the URI of namespace in which the function is needed
  `funcName` - the function name being tested
Returns:
  whether the given function is available or not.
Throws:
  `TransformerException`

#### elementAvailable

    public boolean elementAvailable(java.lang.String ns,
                           java.lang.String elemName)
                             throws TransformerException

Execute the element-available() function.

Parameters:
  `ns` - the URI of namespace in which the function is needed
  `elemName` - name of element being tested
Returns:
  whether the given element is available or not.
Throws:
  `TransformerException`

#### extFunction

    public java.lang.Object extFunction(java.lang.String ns,
                               java.lang.String funcName,
                               java.util.Vector argVec,
                               java.lang.Object methodKey,
                               ExpressionContext exprContext)
                                 throws TransformerException

Handle an extension function.

Parameters:
  `ns` - the URI of namespace in which the function is needed
  `funcName` - the function name being called
  `argVec` - arguments to the function in a vector
  `methodKey` - a unique key identifying this function instance in the stylesheet
  `exprContext` - a context which may be passed to an extension function and provides callback functions to access various areas in the environment
Returns:
  result of executing the function
Throws:
  `TransformerException`

#### extFunction

    public java.lang.Object extFunction(FuncExtFunction extFunction,
                               java.util.Vector argVec,
                               ExpressionContext exprContext)
                                 throws TransformerException

Handle an extension function.

Parameters:
  `extFunction` - the extension function
  `argVec` - arguments to the function in a vector
  `exprContext` - a context which may be passed to an extension function and provides callback functions to access various areas in the environment
Returns:
  result of executing the function
Throws:
  `TransformerException`