Package org.apache.xalan.extensions
Class ExtensionHandler
java.lang.Object
org.apache.xalan.extensions.ExtensionHandler
public abstract class ExtensionHandler extends 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)
-
Field Summary
Fields Modifier and Type Field Description protected Stringm_namespaceUriuri of the extension namespaceprotected Stringm_scriptLangscripting language of implementation -
Constructor Summary
Constructors Modifier Constructor Description protectedExtensionHandler(String namespaceUri, String scriptLang)Construct a new extension namespace handler given all the information needed. -
Method Summary
Modifier and Type Method Description abstract ObjectcallFunction(String funcName, Vector args, Object methodKey, ExpressionContext exprContext)Process a call to a function.abstract ObjectcallFunction(FuncExtFunction extFunction, Vector args, ExpressionContext exprContext)Process a call to a function.abstract booleanisElementAvailable(String element)Tests whether a certain element name is known within this namespace.abstract booleanisFunctionAvailable(String function)Tests whether a certain function name is known within this namespace.abstract voidprocessElement(String localPart, ElemTemplateElement element, TransformerImpl transformer, Stylesheet stylesheetTree, Object methodKey)Process a call to this extension namespace via an element.
-
Field Details
-
m_namespaceUri
uri of the extension namespace -
m_scriptLang
scripting language of implementation
-
-
Constructor Details
-
ExtensionHandler
Construct a new extension namespace handler given all the information needed.- Parameters:
namespaceUri- the extension namespace URI that I'm implementingscriptLang- language of code implementing the extension
-
-
Method Details
-
isFunctionAvailable
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.
-
isElementAvailable
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.
-
callFunction
public abstract Object callFunction(String funcName, Vector args, Object methodKey, ExpressionContext exprContext) throws TransformerExceptionProcess 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 abstract Object callFunction(FuncExtFunction extFunction, Vector args, ExpressionContext exprContext) throws TransformerExceptionProcess 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
-
processElement
public abstract void processElement(String localPart, ElemTemplateElement element, TransformerImpl transformer, Stylesheet stylesheetTree, Object methodKey) throws TransformerException, IOExceptionProcess 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 troubleFileNotFoundException- if loading troubleIOException- if loading troubleTransformerException- if parsing trouble
-