BEA Systems, Inc.

WebLogic Server 6.0sp2 API Reference

weblogic.apache.xalan.xpath
Class ExtensionFunctionHandler

java.lang.Object
  |
  +--weblogic.apache.xalan.xpath.ExtensionFunctionHandler
Direct Known Subclasses:
ExtensionNSHandler

public class ExtensionFunctionHandler
extends java.lang.Object

Class handling an extension namespace for XPath. Provides functions to test a function's existence and call a function

This class is based on an implementation from the Apache XML Project. In future releases the XML parser, XSLT processor, and associated classes will likely be updated to be based on a later version of the Apache implementations. Since Apache does not guarantee backwards compatibility between versions of their software, we cannot guarantee backwards compatibility of any of the classes contained in the weblogic.apache package or sub-packages.

Author:
Sanjiva Weerawarana (sanjiva@watson.ibm.com)
Copyright © 2001 BEA Systems, Inc. All Rights Reserved.

Inner Class Summary
static interface ExtensionFunctionHandler.ExtensionLiaison
          Interface for connecting extension functions to xalan.
 
Field Summary
protected  boolean componentStarted
           
static java.lang.String DEFAULT_EXTENSION_LIAISON
           
protected  java.util.Hashtable elements
           
protected  ExtensionFunctionHandler.ExtensionLiaison extensionLiaison
          Patch from Costin Manolache Remove BSF Specific code, create new Interface ExtensionLiaison and move BSF Specific code to XSLTJavaClassEngine
protected  java.util.Hashtable functions
           
 java.lang.String namespaceUri
           
 java.lang.String scriptLang
           
 java.lang.String scriptSrc
           
 java.lang.String scriptSrcURL
           
 
Constructor Summary
ExtensionFunctionHandler(java.lang.String namespaceUri)
          Construct a new extension namespace handler for a given extension NS.
ExtensionFunctionHandler(java.lang.String namespaceUri, java.lang.String funcNames, java.lang.String lang, java.lang.String srcURL, java.lang.String src)
          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, java.lang.Class javaClass)
          Process a call to a function.
 java.lang.Object callJava(java.lang.Object object, java.lang.String method, java.lang.Object[] args, java.lang.Object methodKey)
          call the named method on the object that was loaded by eval.
 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 setElements(java.lang.String elemNames)
          Set element local parts of extension NS.
 void setFunctions(java.lang.String funcNames)
          Set function local parts of extension NS.
 void setScript(java.lang.String lang, java.lang.String srcURL, java.lang.String scriptSrc)
          Set the script data for this extension NS.
protected  void startupComponent(java.lang.Class classObj)
          Start the component up by executing any script that needs to run at startup time.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

extensionLiaison

protected ExtensionFunctionHandler.ExtensionLiaison extensionLiaison
Patch from Costin Manolache Remove BSF Specific code, create new Interface ExtensionLiaison and move BSF Specific code to XSLTJavaClassEngine

namespaceUri

public java.lang.String namespaceUri

scriptLang

public java.lang.String scriptLang

scriptSrc

public java.lang.String scriptSrc

scriptSrcURL

public java.lang.String scriptSrcURL

functions

protected java.util.Hashtable functions

elements

protected java.util.Hashtable elements

componentStarted

protected boolean componentStarted

DEFAULT_EXTENSION_LIAISON

public static final java.lang.String DEFAULT_EXTENSION_LIAISON
Constructor Detail

ExtensionFunctionHandler

public ExtensionFunctionHandler(java.lang.String namespaceUri)
Construct a new extension namespace handler for a given extension NS. This doesn't do anything - just hang on to the namespace URI.

Parameters:
namespaceUri - the extension namespace URI that I'm implementing

ExtensionFunctionHandler

public ExtensionFunctionHandler(java.lang.String namespaceUri,
                                java.lang.String funcNames,
                                java.lang.String lang,
                                java.lang.String srcURL,
                                java.lang.String src)
Construct a new extension namespace handler given all the information needed.

Parameters:
namespaceUri - the extension namespace URI that I'm implementing
funcNames - string containing list of functions of extension NS
lang - language of code implementing the extension
srcURL - value of src attribute (if any) - treated as a URL or a classname depending on the value of lang. If srcURL is not null, then scriptSrc is ignored.
scriptSrc - the actual script code (if any)
Method Detail

setFunctions

public void setFunctions(java.lang.String funcNames)
Set function local parts of extension NS.

Parameters:
functions - whitespace separated list of function names defined by this extension namespace.

setElements

public void setElements(java.lang.String elemNames)
Set element local parts of extension NS.

Parameters:
elements - whitespace separated list of element names defined by this extension namespace.

setScript

public void setScript(java.lang.String lang,
                      java.lang.String srcURL,
                      java.lang.String scriptSrc)
Set the script data for this extension NS. If srcURL is !null then the script body is read from that URL. If not the scriptSrc is used as the src. This method does not actually execute anything - that's done when the component is first hit by the user by an element or a function call.

Parameters:
lang - language of the script.
srcURL - value of src attribute (if any) - treated as a URL or a classname depending on the value of lang. If srcURL is not null, then scriptSrc is ignored.
scriptSrc - the actual script code (if any)

isFunctionAvailable

public 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 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
Returns:
true if its known, false if not.

callJava

public java.lang.Object callJava(java.lang.Object object,
                                 java.lang.String method,
                                 java.lang.Object[] args,
                                 java.lang.Object methodKey)
                          throws XPathException
call the named method on the object that was loaded by eval. The method selection stuff is very XSLT-specific, hence the custom engine.

Parameters:
object - ignored - should always be null

callFunction

public java.lang.Object callFunction(java.lang.String funcName,
                                     java.util.Vector args,
                                     java.lang.Object methodKey,
                                     java.lang.Class javaClass)
                              throws XPathException
Process a call to a function.

Parameters:
funcName - Function name.
args - The arguments of the function call.
Returns:
the return value of the function evaluation.
Throws:
XSLProcessorException - thrown if something goes wrong while running the extension handler.
java.net.MalformedURLException - if loading trouble
java.io.FileNotFoundException - if loading trouble
java.io.IOException - if loading trouble
org.xml.sax.SAXException - if parsing trouble

startupComponent

protected void startupComponent(java.lang.Class classObj)
                         throws XPathProcessorException
Start the component up by executing any script that needs to run at startup time. This needs to happen before any functions can be called on the component.

Throws:
XPathProcessorException - if something bad happens.

Documentation is available at
http://download.oracle.com/docs/cd/E13222_01/wls/docs60