|
BEA Systems, Inc. | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--weblogic.apache.xalan.extensions.ExtensionHandler | +--weblogic.apache.xalan.extensions.ExtensionHandlerJava | +--weblogic.apache.xalan.extensions.ExtensionHandlerJavaClass
Represents an extension namespace for XPath that handles java classes. It is recommended that the class URI be of the form:
xalan://fully.qualified.class.nameHowever, we do not enforce this. If the class name contains a a /, we only use the part to the right of the rightmost slash. In addition, we ignore any "class:" prefix. Provides functions to test a function's existence and call a function. Also provides functions to test an element's existence and call an element.
Fields inherited from class weblogic.apache.xalan.extensions.ExtensionHandlerJava |
m_className |
Fields inherited from class weblogic.apache.xalan.extensions.ExtensionHandler |
m_namespaceUri,
m_scriptLang |
Constructor Summary | |
ExtensionHandlerJavaClass(java.lang.String namespaceUri,
java.lang.String scriptLang,
java.lang.String className)
Construct a new extension namespace handler given all the information needed. |
Method Summary | |
java.lang.Object |
callFunction(java.lang.String funcName,
java.util.Vector args,
java.lang.Object methodKey,
ExpressionContext exprContext)
Process a call to a function in the java class represented by this ExtensionHandlerJavaClass |
boolean |
isElementAvailable(java.lang.String element)
Tests whether a certain element name is known within this namespace. |
boolean |
isFunctionAvailable(java.lang.String function)
Tests whether a certain function name is known within this namespace. |
void |
processElement(java.lang.String localPart,
org.w3c.dom.Element element,
TransformerImpl transformer,
Stylesheet stylesheetTree,
org.w3c.dom.Node sourceTree,
org.w3c.dom.Node sourceNode,
QName mode,
java.lang.Object methodKey)
Process a call to this extension namespace via an element. |
Methods inherited from class weblogic.apache.xalan.extensions.ExtensionHandlerJava |
getFromCache,
putToCache |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public ExtensionHandlerJavaClass(java.lang.String namespaceUri, java.lang.String scriptLang, java.lang.String className)
namespaceUri
- the extension namespace URI that I'm implementingscriptLang
- language of code implementing the extensionclassName
- the fully qualified class name of the classMethod Detail |
public boolean isFunctionAvailable(java.lang.String function)
function
- name of the function being testedpublic boolean isElementAvailable(java.lang.String element)
element
- name of the element being testedpublic java.lang.Object callFunction(java.lang.String funcName, java.util.Vector args, java.lang.Object methodKey, ExpressionContext exprContext) throws javax.xml.transform.TransformerException
ExtensionHandlerJavaClass.
There are three possible types of calls:
Constructor:
classns:new(arg1, arg2, ...)
Static method:
classns:method(arg1, arg2, ...)
Instance method:
classns:method(obj, arg1, arg2, ...)
We use the following rules to determine the type of call made:
- If the function name is "new", call the best constructor for
class represented by the namespace URI
- If the first argument to the function is of the class specified
in the namespace or is a subclass of that class, look for the best
method of the class specified in the namespace with the specified
arguments. Compare all static and instance methods with the correct
method name. For static methods, use all arguments in the compare.
For instance methods, use all arguments after the first.
- Otherwise, select the best static or instance method matching
all of the arguments. If the best method is an instance method,
call the function using a default object, creating it if needed.
- 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:
- javax.xml.transform.TransformerException -
- Overrides:
- callFunction in class ExtensionHandler
public void processElement(java.lang.String localPart, org.w3c.dom.Element element, TransformerImpl transformer, Stylesheet stylesheetTree, org.w3c.dom.Node sourceTree, org.w3c.dom.Node sourceNode, QName mode, java.lang.Object methodKey) throws javax.xml.transform.TransformerException, java.io.IOException
localPart
- Element name's local part.element
- The extension element being processed.transformer
- Handle to TransformerImpl.stylesheetTree
- The compiled stylesheet tree.sourceTree
- The root of the source tree (but don't assume
it's a Document).sourceNode
- The current context node.mode
- The current mode.methodKey
- A key that uniquely identifies this element call.
|
Documentation is available at http://e-docs.bea.com/wls/docs61 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |