org.eclipse.jdt.debug.eval
Interface IEvaluationEngine
- All Known Subinterfaces:
- IAstEvaluationEngine, IClassFileEvaluationEngine
- public interface IEvaluationEngine
An evaluation engine performs an evalutaion of a
code snippet or expression in a specified thread of a debug target.
An evaluation engine is associated with a specific
debug target and Java project on creation.
Clients are not intended to implement this interface.
- Since:
- 2.0
- See Also:
- IEvaluationResult,
IEvaluationListener
Method Summary
|
void
| dispose()
Disposes this evaluation engine.
|
void
| evaluate(String snippet,
IJavaObject thisContext,
IJavaThread thread,
IEvaluationListener listener,
int evaluationDetail,
boolean hitBreakpoints)
Asynchronously evaluates the given snippet in the context of
the specified type, reporting the result back to the given listener.
|
void
| evaluate(String snippet,
IJavaStackFrame frame,
IEvaluationListener listener,
int evaluationDetail,
boolean hitBreakpoints)
Asynchronously evaluates the given snippet in the context of
the specified stack frame, reporting the result back to the given listener.
|
IJavaDebugTarget
| getDebugTarget()
Returns the debug target for which evaluations
are executed.
|
IJavaProject
| getJavaProject()
Returns the Java project in which snippets are
compliled.
|
evaluate
public void evaluate(String snippet,
IJavaStackFrame frame,
IEvaluationListener listener,
int evaluationDetail,
boolean hitBreakpoints)
throws DebugException
- Asynchronously evaluates the given snippet in the context of
the specified stack frame, reporting the result back to the given listener.
The snippet is evaluated in the context of the Java
project this evaluation engine was created on. If the
snippet is determined to be a valid expression, the expression
is evaluated in the thread associated with the given
stack frame. The thread is resumed from the location at which it
is currently suspended to perform the evaluation. When the evaluation
completes, the thread will be suspened at this original location.
The thread runs the evaluation with the given evaluation detail
(@see IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)).
Compilation and runtime errors are reported in the evaluation result.
- Parameters:
- snippet - code snippet to evaluate
- frame - the stack frame context in which to run the
evaluation.
- listener - the listener that will receive notification
when/if the evalaution completes
- evaluationDetail - one of DebugEvent.EVALUATION or
DebugEvent.EVALUATION_IMPLICIT
- hitBreakpoints - whether or not breakpoints should be honored
in the evaluation thread during the evaluation. If false,
breakpoints hit in the evaluation thread will be ignored.
- Throws:
- DebugException - if this method fails. Reasons include:
- Failure communicating with the VM. The DebugException's
status code contains the underlying exception responsible for
the failure.
- The associated thread is not currently suspended
- The stack frame is not contained in the debug target
associated with this evaluation engine
- The associated thread is suspended in the middle of
an evaluation that has not completed. It is not possible
to perform nested evaluations
evaluate
public void evaluate(String snippet,
IJavaObject thisContext,
IJavaThread thread,
IEvaluationListener listener,
int evaluationDetail,
boolean hitBreakpoints)
throws DebugException
- Asynchronously evaluates the given snippet in the context of
the specified type, reporting the result back to the given listener.
The snippet is evaluated in the context of the Java
project this evaluation engine was created on. If the
snippet is determined to be a valid expression, the expression
is evaluated in the thread associated with the given
stack frame. The thread is resumed from the location at which it
is currently suspended to perform the evaluation. When the evaluation
completes, the thread will be suspened at this original location.
The thread runs the evaluation with the given evaluation detail
(@see IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)).
Compilation and runtime errors are reported in the evaluation result.
- Parameters:
- snippet - code snippet to evaluate
- thisContext - the 'this' context for the evaluation
- thread - the thread in which to run the evaluation,
which must be suspended
- listener - the listener that will receive notification
when/if the evalaution completes
- evaluationDetail - one of DebugEvent.EVALUATION or
DebugEvent.EVALUATION_IMPLICIT
- hitBreakpoints - whether or not breakpoints should be honored
in the evaluation thread during the evaluation. If false,
breakpoints hit in the evaluation thread will be ignored.
- Throws:
- DebugException - if this method fails. Reasons include:
- Failure communicating with the VM. The DebugException's
status code contains the underlying exception responsible for
the failure.
- The associated thread is not currently suspended
- The specified thread is not contained in the debug target
associated with this evaluation engine
- The associated thread is suspended in the middle of
an evaluation that has not completed. It is not possible
to perform nested evaluations
getJavaProject
public IJavaProject getJavaProject()
- Returns the Java project in which snippets are
compliled.
- Returns:
- Java project context
getDebugTarget
public IJavaDebugTarget getDebugTarget()
- Returns the debug target for which evaluations
are executed.
- Returns:
- Java debug target
dispose
public void dispose()
- Disposes this evaluation engine. This causes the evaluation engine
to cleanup any resources (such as threads) that it maintains. Clients
should call this method when they are finished performing evaluations
with this engine.
This engine must not be used to perform evaluations after it has been disposed.
Copyright (c) IBM Corp. and others 2000, 2004. All Rights Reserved.