org.apache.xalan.extensions

Class 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)

UNKNOWN: internal

Constructor Summary
ExtensionHandlerGeneral(String namespaceUri, StringVector elemNames, StringVector funcNames, String scriptLang, String scriptSrcURL, String scriptSrc, String systemId)
Construct a new extension namespace handler given all the information needed.
Method Summary
ObjectcallFunction(String funcName, Vector args, Object methodKey, ExpressionContext exprContext)
Process a call to a function.
ObjectcallFunction(FuncExtFunction extFunction, Vector args, ExpressionContext exprContext)
Process a call to an XPath extension function
booleanisElementAvailable(String element)
Tests whether a certain element name is known within this namespace.
booleanisFunctionAvailable(String function)
Tests whether a certain function name is known within this namespace.
voidprocessElement(String localPart, ElemTemplateElement element, TransformerImpl transformer, Stylesheet stylesheetTree, Object methodKey)
Process a call to this extension namespace via an element.

Constructor Detail

ExtensionHandlerGeneral

public ExtensionHandlerGeneral(String namespaceUri, StringVector elemNames, StringVector funcNames, String scriptLang, String scriptSrcURL, String scriptSrc, String systemId)
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

callFunction

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

isElementAvailable

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

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)
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 IOException if loading trouble TransformerException if parsing trouble

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