org.apache.bsf.debug.jsdi
Interface JsFunction

All Superinterfaces:
JsCode, JsObject, java.rmi.Remote

public interface JsFunction
extends JsCode

Represents a function in the engine since JavaScript has code as first-class objects.


Field Summary
 
Fields inherited from interface org.apache.bsf.debug.jsdi.JsObject
DONTDELETE, DONTENUM, EMPTY, INTERNAL, READONLY
 
Method Summary
 java.lang.Object call(JsContext cx, JsObject scope, JsObject thisObj, java.lang.Object[] args)
          Call the function.
 JsObject construct(JsContext cx, JsObject scope, java.lang.Object[] args)
          Call the function as a constructor.
 int getArgumentCount()
           
 java.lang.String getFunctionName()
           
 
Methods inherited from interface org.apache.bsf.debug.jsdi.JsCode
getLineNumbers, getSourceName
 
Methods inherited from interface org.apache.bsf.debug.jsdi.JsObject
define, delete, delete, get, get, getClassName, getDefaultValue, getIds, getPrototype, getScope, has, has, hasInstance, isFunction, isScript, put, put, setPrototype, setScope
 

Method Detail

call

public java.lang.Object call(JsContext cx,
                             JsObject scope,
                             JsObject thisObj,
                             java.lang.Object[] args)
                      throws java.rmi.RemoteException
Call the function. Note that the array of arguments is not guaranteed to have length greater than 0.

Parameters:
cx - the current Context for this thread
scope - the scope to execute the function relative to. This is set to the value returned by getParentScope() except when the function is called from a closure.
thisObj - the JavaScript this object
args - the array of arguments
Returns:
the result of the call
Throws:
JavaScriptException - if an uncaught exception occurred while executing the function
java.rmi.RemoteException

construct

public JsObject construct(JsContext cx,
                          JsObject scope,
                          java.lang.Object[] args)
                   throws java.rmi.RemoteException
Call the function as a constructor. This method is invoked by the runtime in order to satisfy a use of the JavaScript new operator. This method is expected to create a new object and return it.

Parameters:
cx - the current Context for this thread
scope - an enclosing scope of the caller except when the function is called from a closure.
args - the array of arguments
Returns:
the allocated object
Throws:
JavaScriptException - if an uncaught exception occurred while executing the constructor
java.rmi.RemoteException

getArgumentCount

public int getArgumentCount()
                     throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

getFunctionName

public java.lang.String getFunctionName()
                                 throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException