org.apache.xalan.extensions

## Class ExtensionHandlerExsltFunction

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

    public class ExtensionHandlerExsltFunction
    extends ExtensionHandler

Execute EXSLT functions, determine the availability of EXSLT functions, and the availability of an EXSLT result element.

### Constructor Summary

Constructors
Constructor and Description
`ExtensionHandlerExsltFunction(java.lang.String ns, StylesheetRoot stylesheet)` Constructor called from ElemExsltFunction runtimeInit().

### Method Summary

Methods
`java.lang.Object` `callFunction(FuncExtFunction extFunction, java.util.Vector args, ExpressionContext exprContext)` Execute the EXSLT function and return the result value.
`java.lang.Object` `callFunction(java.lang.String funcName, java.util.Vector args, java.lang.Object methodKey, ExpressionContext exprContext)` Execute the EXSLT function and return the result value.
`ElemExsltFunction` `getFunction(java.lang.String funcName)` Get the ElemExsltFunction element associated with the function.
`boolean` `isElementAvailable(java.lang.String elemName)` If an element-available() call applies to an EXSLT result element within an EXSLT function element, return true.
`boolean` `isFunctionAvailable(java.lang.String funcName)` Does the EXSLT function exist?
`void` `processElement(java.lang.String localPart, ElemTemplateElement element, TransformerImpl transformer, Stylesheet stylesheetTree, java.lang.Object methodKey)` Required by ExtensionHandler (an abstract method).

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

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

### Constructor Detail

#### ExtensionHandlerExsltFunction

    public ExtensionHandlerExsltFunction(java.lang.String ns,
                                 StylesheetRoot stylesheet)

Constructor called from ElemExsltFunction runtimeInit().

### Method Detail

#### processElement

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

Required by ExtensionHandler (an abstract method). No-op.

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:
  `TransformerException` - if parsing trouble
  `java.io.IOException` - if loading trouble

#### getFunction

    public ElemExsltFunction getFunction(java.lang.String funcName)

Get the ElemExsltFunction element associated with the function.

Parameters:
  `funcName` - Local name of the function.
Returns:
  the ElemExsltFunction element associated with the function, null if none exists.

#### isFunctionAvailable

    public boolean isFunctionAvailable(java.lang.String funcName)

Does the EXSLT function exist?

Specified by:
  `isFunctionAvailable` in class `ExtensionHandler`
Parameters:
  `funcName` - Local name of the function.
Returns:
  true if the function exists.

#### isElementAvailable

    public boolean isElementAvailable(java.lang.String elemName)

If an element-available() call applies to an EXSLT result element within an EXSLT function element, return true. Note: The EXSLT function element is a template-level element, and element-available() returns false for it.

Specified by:
  `isElementAvailable` in class `ExtensionHandler`
Parameters:
  `elemName` - name of the element.
Returns:
  true if the function is available.

#### callFunction

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

Execute the EXSLT function and return the result value.

Specified by:
  `callFunction` in class `ExtensionHandler`
Parameters:
  `funcName` - Name of the EXSLT function.
  `args` - The arguments of the function call.
  `methodKey` - Not used.
  `exprContext` - Used to get the XPathContext.
Returns:
  the return value of the function evaluation.
Throws:
  `TransformerException`

#### callFunction

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

Execute the EXSLT function and return the result value.

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`