org.apache.xalan.xpath
Class XSLTJavaClassEngine

java.lang.Object
  |
  +--com.ibm.bsf.util.BSFEngineImpl
        |
        +--org.apache.xalan.xpath.XSLTJavaClassEngine

public class XSLTJavaClassEngine
extends com.ibm.bsf.util.BSFEngineImpl
implements ExtensionFunctionHandler.ExtensionLiaison

**For internal use only** This is a custom scripting engine for the XSLT processor's needs of calling into Java objects.


Field Summary
 java.lang.Class classObject
          **For internal use only**  
 java.lang.Object javaObject
          **For internal use only**  
 java.lang.String scriptLang
          **For internal use only**  
 java.lang.String scriptSrc
          **For internal use only**  
 java.lang.String scriptSrcURL
          **For internal use only**  
 
Constructor Summary
XSLTJavaClassEngine()
          **For internal use only**  
 
Method Summary
 java.lang.Object call(java.lang.Object object, java.lang.String method, java.lang.Object[] args)
          **For internal use only** call the named method on the object that was loaded by eval.
 java.lang.Object callFunction(java.lang.String funcName, java.util.Vector args, java.lang.Object methodKey, java.lang.Class javaClass)
          **For internal use only** 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)
          **For internal use only** call the named method on the object that was loaded by eval.
 void checkInit()
          **For internal use only**  
 java.lang.Object eval(java.lang.String source, int lineNo, int columnNo, java.lang.Object oscript)
          **For internal use only** This is used by an application to evaluate an object containing some expression - clearly not possible for compiled code ..
 void setScript(java.lang.String lang, java.lang.String srcURL, java.lang.String scriptSrc)
          **For internal use only** Set the script data for this extension NS.
 void startupComponent(java.lang.Class classObj)
          **For internal use only** Start the component up by executing any script that needs to run at startup time.
 
Methods inherited from class com.ibm.bsf.util.BSFEngineImpl
apply, compileApply, compileExpr, compileScript, declareBean, exec, initialize, propertyChange, setDebug, terminate, undeclareBean
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

scriptLang

public java.lang.String scriptLang

scriptSrcURL

public java.lang.String scriptSrcURL

scriptSrc

public java.lang.String scriptSrc

javaObject

public java.lang.Object javaObject

classObject

public java.lang.Class classObject
Constructor Detail

XSLTJavaClassEngine

public XSLTJavaClassEngine()
Method Detail

eval

public java.lang.Object eval(java.lang.String source,
                             int lineNo,
                             int columnNo,
                             java.lang.Object oscript)
                      throws com.ibm.bsf.BSFException
**For internal use only** This is used by an application to evaluate an object containing some expression - clearly not possible for compiled code ..
Overrides:
eval in class com.ibm.bsf.util.BSFEngineImpl

call

public java.lang.Object call(java.lang.Object object,
                             java.lang.String method,
                             java.lang.Object[] args)
                      throws com.ibm.bsf.BSFException
**For internal use only** 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
Overrides:
call in class com.ibm.bsf.util.BSFEngineImpl

setScript

public void setScript(java.lang.String lang,
                      java.lang.String srcURL,
                      java.lang.String scriptSrc)
**For internal use only** 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.
Specified by:
setScript in interface ExtensionFunctionHandler.ExtensionLiaison
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)

callJava

public java.lang.Object callJava(java.lang.Object object,
                                 java.lang.String method,
                                 java.lang.Object[] args,
                                 java.lang.Object methodKey)
                          throws XPathException
**For internal use only** call the named method on the object that was loaded by eval. The method selection stuff is very XSLT-specific, hence the custom engine.
Specified by:
callJava in interface ExtensionFunctionHandler.ExtensionLiaison
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
**For internal use only** Process a call to a function.
Specified by:
callFunction in interface ExtensionFunctionHandler.ExtensionLiaison
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.
MalformedURLException - if loading trouble
java.io.FileNotFoundException - if loading trouble
java.io.IOException - if loading trouble
org.xml.sax.SAXException - if parsing trouble

checkInit

public void checkInit()
               throws XPathProcessorException
Specified by:
checkInit in interface ExtensionFunctionHandler.ExtensionLiaison

startupComponent

public void startupComponent(java.lang.Class classObj)
                      throws XPathProcessorException
**For internal use only** 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.
Specified by:
startupComponent in interface ExtensionFunctionHandler.ExtensionLiaison
Throws:
XPathProcessorException - if something bad happens.


Copyright © 2000 Apache XML Project. All Rights Reserved.