org.apache.bsf.debug.jsdi

Interface JsFunction

All Superinterfaces:
JsCode, JsObject, Remote

public interface JsFunction
extends JsCode

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

Fields inherited from interface org.apache.bsf.debug.jsdi.JsObject

DONTDELETE, DONTENUM, EMPTY, INTERNAL, READONLY

Method Summary

Object
call(JsContext cx, JsObject scope, JsObject thisObj, Object[] args)
Call the function.
JsObject
construct(JsContext cx, JsObject scope, Object[] args)
Call the function as a constructor.
int
getArgumentCount()
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 Details

call

public Object call(JsContext cx,
                   JsObject scope,
                   JsObject thisObj,
                   Object[] args)
            throws 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

construct

public JsObject construct(JsContext cx,
                          JsObject scope,
                          Object[] args)
            throws 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

getArgumentCount

public int getArgumentCount()
            throws RemoteException

getFunctionName

public String getFunctionName()
            throws RemoteException