Save This Page
Home » bsf-src-2.4.0 » org.apache.bsf.debug.jsdi » [javadoc | source]
org.apache.bsf.debug.jsdi
public interface: JsEngine [javadoc | source]

All Implemented Interfaces:
    Remote

All Known Implementing Classes:
    JsEngineStub, JsEngineStub

Represents a remote engine as seen from the debugger. It matches the notion of global object in JavaScript specification. In other words, a JsEngine is an execution context rather than an explicit engine. This also means that a JsEngine is not multi-threaded, there is only one execution being carried. Hence, there is only one stack of JsContext for a JsEngine. The stack is only accesible if the engine is in a callback mode to the debugger, that is, the execution is stopped at a breakpoint or after a stepping order has completed.
Method from org.apache.bsf.debug.jsdi.JsEngine Summary:
eval,   getContext,   getContextCount,   getDebugger,   getGlobalObject,   getThread,   getThreadGroup,   getUndefinedValue,   isSuspended,   poll,   run,   setDebugger,   stepIn,   stepOut,   stepOver
Method from org.apache.bsf.debug.jsdi.JsEngine Detail:
 public Object eval(String docname,
    String fnOrScript,
    int lineno) throws RemoteException
    Allow the debugger to evaluate an expression within the current context.
 public JsContext getContext(int depth) throws RemoteException
    Returns the JsContext at a certain depth. Depth zero is the top of the stack, that is, the inner execution context. This is a valid call only if the engine is stopped in a callback to the debugger (breakpoint or stepping completed).
 public int getContextCount() throws RemoteException
    Returns the count of JsContext on the current stack. This is a valid call only if the engine is stopped in a callback to the debugger (breakpoint or stepping completed).
 public JsCallbacks getDebugger() throws RemoteException
    Return the current debugger.
 public JsObject getGlobalObject() throws RemoteException
    Any execution in JavaScript happen with respect to a global object, sort of the top-level name space for properties. This is global object return by this call.
 public String getThread() throws RemoteException
    Returns name of the thread currently running in the engine
 public String getThreadGroup() throws RemoteException
    Returns name of the ThreadGroup of the thread currently running in the engine
 public JsObject getUndefinedValue() throws RemoteException
    As per ECMA specification, each JavaScript execution defines a unique object for the undefined value.
 public boolean isSuspended() throws RemoteException
 public boolean poll() throws RemoteException
    Allows the client debugger to poll the connection.
 public  void run() throws RemoteException
    Stepping commands: run: resume execution until it finishes or a breakpoint is hit. stepIn: steps to the next statement, considering callee's statement if any. stepOut: steps until the current JsContext exits. stepOver: steps to the next statement within the same JsContext.
 public  void setDebugger(JsCallbacks debugger) throws RemoteException
    Set the associated debugger.
 public  void stepIn() throws RemoteException
 public  void stepOut() throws RemoteException
 public  void stepOver() throws RemoteException