org.apache.xalan.extensions
Class ExtensionHandler

java.lang.Object
  |
  +--org.apache.xalan.extensions.ExtensionHandler
Direct Known Subclasses:
ExtensionHandlerExsltFunction, ExtensionHandlerGeneral, ExtensionHandlerJava

public abstract class ExtensionHandler
extends java.lang.Object

**For internal use only** 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.


Method Summary
abstract  java.lang.Object callFunction(FuncExtFunction extFunction, java.util.Vector args, ExpressionContext exprContext)
          Process a call to a function.
abstract  java.lang.Object callFunction(java.lang.String funcName, java.util.Vector args, java.lang.Object methodKey, ExpressionContext exprContext)
          Process a call to a function.
static java.lang.Class getClassForName(java.lang.String className)
          Replacement for Class.forName.
abstract  boolean isElementAvailable(java.lang.String element)
          Tests whether a certain element name is known within this namespace.
abstract  boolean isFunctionAvailable(java.lang.String function)
          Tests whether a certain function name is known within this namespace.
abstract  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
 

Method Detail

getClassForName

public static java.lang.Class getClassForName(java.lang.String className)
                                       throws java.lang.ClassNotFoundException
Replacement for Class.forName. This method loads a class using the context class loader if we're running under Java2 or higher. If we're running under Java1, this method just uses Class.forName to load the class.
Parameters:
className - Name of the class to load

isFunctionAvailable

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

isElementAvailable

public abstract boolean isElementAvailable(java.lang.String element)
Tests whether a certain element name is known within this namespace.
Parameters:
function - name of the function being tested
element - Name of element to check
Returns:
true if its known, false if not.

callFunction

public abstract java.lang.Object callFunction(java.lang.String funcName,
                                              java.util.Vector args,
                                              java.lang.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 abstract java.lang.Object callFunction(FuncExtFunction extFunction,
                                              java.util.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

processElement

public abstract void processElement(java.lang.String localPart,
                                    ElemTemplateElement element,
                                    TransformerImpl transformer,
                                    Stylesheet stylesheetTree,
                                    java.lang.Object methodKey)
                             throws 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.
Parameters:
localPart - Element name's local part.
element - The extension element being processed.
transformer - Handle to TransformerImpl.
stylesheetTree - The compiled stylesheet tree.
mode - The current mode.
sourceTree - The root of the source tree (but don't assume it's a Document).
sourceNode - The current context node.
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
TransformerException - if parsing trouble


Copyright © 2003 Apache XML Project. All Rights Reserved.