org.apache.xalan.extensions

Class ExtensionHandler

Known Direct Subclasses:
ExtensionHandlerExsltFunction, ExtensionHandlerGeneral, ExtensionHandlerJava

public abstract class ExtensionHandler
extends java.lang.Object

Abstract base class for handling an extension namespace for XPath. Provides functions to test a function's existence and call a function. Also provides functions for calling an element and testing for an element's existence.

Author:
Sanjiva Weerawarana (sanjiva@watson.ibm.com)

Method Summary

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

Method Details

callFunction

public Object callFunction(String funcName,
                           Vector args,
                           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


callFunction

public Object callFunction(FuncExtFunction extFunction,
                           Vector args,
                           ExpressionContext exprContext)
            throws TransformerException
Process a call to a 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 - if parsing trouble


isElementAvailable

public boolean isElementAvailable(String element)
Tests whether a certain element name is known within this namespace.

Parameters:
element - Name of element to check

Returns:
true if its known, false if not.


isFunctionAvailable

public boolean isFunctionAvailable(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.


processElement

public void processElement(String localPart,
                           ElemTemplateElement element,
                           TransformerImpl transformer,
                           Stylesheet stylesheetTree,
                           Object methodKey)
            throws TransformerException,
                   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:
TransformerException - if parsing trouble


Copyright B) 2004 Apache XML Project. All Rights Reserved.