## 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

Usage:
  **For internal use only**

Constructor Summary
`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
`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.
  Parameters:
    `function` - name of the function being tested
  Returns:
    true if its known, false if not.
  Overrides:
    isFunctionAvailable in class ExtensionHandler

### isElementAvailable

    public boolean isElementAvailable(java.lang.String element)

  Tests whether a certain element name is known within this namespace.
  Parameters:
    `element` - name of the element being tested
  Returns:
    true if its known, false if not.
  Overrides:
    isElementAvailable in class ExtensionHandler

### 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.
  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
  Overrides:
    callFunction in class ExtensionHandler

### callFunction

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

  Process a call to an XPath extension function
  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 -
  Overrides:
    callFunction in class ExtensionHandler

### 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.
  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
  Overrides:
    processElement in class ExtensionHandler

Copyright © 2006 Apache XML Project. All Rights Reserved.