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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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 javax.xml.transform.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:
        `javax.xml.transform.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 javax.xml.transform.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:
        `javax.xml.transform.TransformerException` - if parsing trouble

    - #### callFunction

          public java.lang.Object callFunction(FuncExtFunction extFunction,
                                               java.util.Vector args,
                                               ExpressionContext exprContext)
                                        throws javax.xml.transform.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:
        `javax.xml.transform.TransformerException`

    - #### processElement

          public void processElement(java.lang.String localPart,
                                     ElemTemplateElement element,
                                     TransformerImpl transformer,
                                     Stylesheet stylesheetTree,
                                     java.lang.Object methodKey)
                              throws javax.xml.transform.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
        `javax.xml.transform.TransformerException` - if parsing trouble

Copyright © 2023 Apache XML Project. All Rights Reserved.