org.apache.xalan.extensions

## Class ExtensionHandlerGeneral

- java.lang.Object
- - org.apache.xalan.extensions.ExtensionHandler
  - - org.apache.xalan.extensions.ExtensionHandlerGeneral

    public class ExtensionHandlerGeneral
    extends ExtensionHandler

Class handling an extension namespace for XPath. Provides functions to test a function's existence and call a function

Author:
  Sanjiva Weerawarana (sanjiva@watson.ibm.com)
Usage:
  **For internal use only**

### Constructor Summary

Constructors
Constructor and Description
`ExtensionHandlerGeneral(java.lang.String namespaceUri, StringVector elemNames, StringVector funcNames, java.lang.String scriptLang, java.lang.String scriptSrcURL, java.lang.String scriptSrc, java.lang.String systemId)` Construct a new extension namespace handler given all the information needed.

### Method Summary

Methods
`java.lang.Object` `callFunction(FuncExtFunction extFunction, java.util.Vector args, ExpressionContext exprContext)` Process a call to an XPath extension function
`java.lang.Object` `callFunction(java.lang.String funcName, java.util.Vector args, java.lang.Object methodKey, ExpressionContext exprContext)` Process a call to a function.
`boolean` `isElementAvailable(java.lang.String element)` Tests whether a certain element name is known within this namespace.
`boolean` `isFunctionAvailable(java.lang.String function)` Tests whether a certain function name is known within this namespace.
`void` `processElement(java.lang.String localPart, ElemTemplateElement element, TransformerImpl transformer, Stylesheet stylesheetTree, java.lang.Object methodKey)` Process a call to this extension namespace via an element.

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

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

### Constructor Detail

#### ExtensionHandlerGeneral

    public ExtensionHandlerGeneral(java.lang.String namespaceUri,
                           StringVector elemNames,
                           StringVector funcNames,
                           java.lang.String scriptLang,
                           java.lang.String scriptSrcURL,
                           java.lang.String scriptSrc,
                           java.lang.String systemId)
                            throws TransformerException

Construct a new extension namespace handler given all the information needed.

Parameters:
  `namespaceUri` - the extension namespace URI that I'm implementing
  `elemNames` - Vector of element names
  `funcNames` - string containing list of functions of extension NS
  `scriptLang` - Scripting language of implementation
  `scriptSrcURL` - URL of source script
  `scriptSrc` - the actual script code (if any)
  `systemId` -
Throws:
  `TransformerException`

### Method Detail

#### isFunctionAvailable

    public boolean isFunctionAvailable(java.lang.String function)

Tests whether a certain function name is known within this namespace.

Specified by:
  `isFunctionAvailable` in class `ExtensionHandler`
Parameters:
  `function` - name of the function being tested
Returns:
  true if its known, false if not.

#### isElementAvailable

    public boolean isElementAvailable(java.lang.String element)

Tests whether a certain element name is known within this namespace.

Specified by:
  `isElementAvailable` in class `ExtensionHandler`
Parameters:
  `element` - name of the element being tested
Returns:
  true if its known, false if not.

#### callFunction

    public java.lang.Object callFunction(java.lang.String funcName,
                                java.util.Vector args,
                                java.lang.Object methodKey,
                                ExpressionContext exprContext)
                                  throws TransformerException

Process a call to a function.

Specified by:
  `callFunction` in class `ExtensionHandler`
Parameters:
  `funcName` - Function name.
  `args` - The arguments of the function call.
  `methodKey` - A key that uniquely identifies this class and method call.
  `exprContext` - The context in which this expression is being executed.
Returns:
  the return value of the function evaluation.
Throws:
  `TransformerException` - if parsing trouble

#### callFunction

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

Process a call to an XPath extension function

Specified by:
  `callFunction` in class `ExtensionHandler`
Parameters:
  `extFunction` - The XPath extension function
  `args` - The arguments of the function call.
  `exprContext` - The context in which this expression is being executed.
Returns:
  the return value of the function evaluation.
Throws:
  `TransformerException`

#### processElement

    public void processElement(java.lang.String localPart,
                      ElemTemplateElement element,
                      TransformerImpl transformer,
                      Stylesheet stylesheetTree,
                      java.lang.Object methodKey)
                        throws TransformerException,
                               java.io.IOException

Process a call to this extension namespace via an element. As a side effect, the results are sent to the TransformerImpl's result tree.

Specified by:
  `processElement` in class `ExtensionHandler`
Parameters:
  `localPart` - Element name's local part.
  `element` - The extension element being processed.
  `transformer` - Handle to TransformerImpl.
  `stylesheetTree` - The compiled stylesheet tree.
  `methodKey` - A key that uniquely identifies this class and method call.
Throws:
  `XSLProcessorException` - thrown if something goes wrong while running the extension handler.
  `MalformedURLException` - if loading trouble
  `FileNotFoundException` - if loading trouble
  `java.io.IOException` - if loading trouble
  `TransformerException` - if parsing trouble