diff options
Diffstat (limited to 'org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java')
-rw-r--r-- | org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java | 259 |
1 files changed, 146 insertions, 113 deletions
diff --git a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java index 76367797b..c456ecd3e 100644 --- a/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java +++ b/org.eclipse.jdt.debug/eval/org/eclipse/jdt/debug/eval/IAstEvaluationEngine.java @@ -10,7 +10,6 @@ *******************************************************************************/ package org.eclipse.jdt.debug.eval; - import org.eclipse.debug.core.DebugException; import org.eclipse.jdt.debug.core.IJavaObject; import org.eclipse.jdt.debug.core.IJavaReferenceType; @@ -18,146 +17,180 @@ import org.eclipse.jdt.debug.core.IJavaStackFrame; import org.eclipse.jdt.debug.core.IJavaThread; /** - * An evaluation engine that performs evaluations by - * interpreting abstract syntax trees. An AST evaluation engine - * is capable of creating compiled expressions that can be - * evaluated multiple times in a given runtime context. + * An evaluation engine that performs evaluations by interpreting abstract + * syntax trees. An AST evaluation engine is capable of creating compiled + * expressions that can be evaluated multiple times in a given runtime context. + * * @since 2.0 * @noimplement This interface is not intended to be implemented by clients. * @noextend This interface is not intended to be extended by clients. - */ + */ public interface IAstEvaluationEngine extends IEvaluationEngine { /** - * Asynchronously evaluates the given expression in the context of - * the specified stack frame, reporting the result back to the given listener. - * 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 suspended at this original location. - * The thread runs the evaluation with the given evaluation detail - * (@see IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)). + * Asynchronously evaluates the given expression in the context of the + * specified stack frame, reporting the result back to the given listener. + * 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 suspended 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. * - * @param expression expression to evaluate - * @param frame the stack frame context in which to run the - * evaluation. - * @param listener the listener that will receive notification - * when/if the evaluation completes - * @param evaluationDetail one of <code>DebugEvent.EVALUATION</code> or - * <code>DebugEvent.EVALUATION_IMPLICIT</code> - * @param hitBreakpoints whether or not breakpoints should be honored - * in the evaluation thread during the evaluation. If <code>false</code>, - * breakpoints hit in the evaluation thread will be ignored. - * @exception DebugException if this method fails. Reasons include:<ul> - * <li>Failure communicating with the VM. The DebugException's - * status code contains the underlying exception responsible for - * the failure.</li> - * <li>The associated thread is not currently suspended</li> - * <li>The stack frame is not contained in the debug target - * associated with this evaluation engine</li> - * <li>The associated thread is suspended in the middle of - * an evaluation that has not completed. It is not possible - * to perform nested evaluations</li> - * </ul> + * @param expression + * expression to evaluate + * @param frame + * the stack frame context in which to run the evaluation. + * @param listener + * the listener that will receive notification when/if the + * evaluation completes + * @param evaluationDetail + * one of <code>DebugEvent.EVALUATION</code> or + * <code>DebugEvent.EVALUATION_IMPLICIT</code> + * @param hitBreakpoints + * whether or not breakpoints should be honored in the evaluation + * thread during the evaluation. If <code>false</code>, + * breakpoints hit in the evaluation thread will be ignored. + * @exception DebugException + * if this method fails. Reasons include: + * <ul> + * <li>Failure communicating with the VM. The + * DebugException's status code contains the underlying + * exception responsible for the failure.</li> + * <li>The associated thread is not currently suspended</li> + * <li>The stack frame is not contained in the debug target + * associated with this evaluation engine</li> + * <li>The associated thread is suspended in the middle of an + * evaluation that has not completed. It is not possible to + * perform nested evaluations</li> + * </ul> */ - public void evaluateExpression(ICompiledExpression expression, IJavaStackFrame frame, IEvaluationListener listener, int evaluationDetail, boolean hitBreakpoints) throws DebugException; + public void evaluateExpression(ICompiledExpression expression, + IJavaStackFrame frame, IEvaluationListener listener, + int evaluationDetail, boolean hitBreakpoints) throws DebugException; /** - * Asynchronously evaluates the given expression in the context of - * the specified type, reporting the result back to the given listener. - * The expression is evaluated in the context of the Java - * project this evaluation engine was created on. If the - * expression is determined to have no errors, the expression - * is evaluated in the thread associated with the given - * stack frame. When the evaluation completes, the thread - * will be suspended at this original location. - * The thread runs the evaluation with the given evaluation detail - * (@see IJavaThread#runEvaluation(IEvaluationRunnable, IProgressMonitor, int)). + * Asynchronously evaluates the given expression in the context of the + * specified type, reporting the result back to the given listener. The + * expression is evaluated in the context of the Java project this + * evaluation engine was created on. If the expression is determined to have + * no errors, the expression is evaluated in the thread associated with the + * given stack frame. When the evaluation completes, the thread will be + * suspended 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. * - * @param expression the expression to evaluate - * @param object the 'this' context for the evaluation - * @param thread the thread in which to run the evaluation, - * which must be suspended - * @param listener the listener that will receive notification - * when/if the evaluation completes - * @param evaluationDetail one of <code>DebugEvent.EVALUATION</code> or - * <code>DebugEvent.EVALUATION_IMPLICIT</code> - * @param hitBreakpoints whether or not breakpoints should be honored - * in the evaluation thread during the evaluation. If <code>false</code>, - * breakpoints hit in the evaluation thread will be ignored. - * @exception DebugException if this method fails. Reasons include:<ul> - * <li>Failure communicating with the VM. The DebugException's - * status code contains the underlying exception responsible for - * the failure.</li> - * <li>The associated thread is not currently suspended</li> - * <li>The stack frame is not contained in the debug target - * associated with this evaluation engine</li> - * <li>The associated thread is suspended in the middle of - * an evaluation that has not completed. It is not possible - * to perform nested evaluations</li> - * </ul> + * @param expression + * the expression to evaluate + * @param object + * the 'this' context for the evaluation + * @param thread + * the thread in which to run the evaluation, which must be + * suspended + * @param listener + * the listener that will receive notification when/if the + * evaluation completes + * @param evaluationDetail + * one of <code>DebugEvent.EVALUATION</code> or + * <code>DebugEvent.EVALUATION_IMPLICIT</code> + * @param hitBreakpoints + * whether or not breakpoints should be honored in the evaluation + * thread during the evaluation. If <code>false</code>, + * breakpoints hit in the evaluation thread will be ignored. + * @exception DebugException + * if this method fails. Reasons include: + * <ul> + * <li>Failure communicating with the VM. The + * DebugException's status code contains the underlying + * exception responsible for the failure.</li> + * <li>The associated thread is not currently suspended</li> + * <li>The stack frame is not contained in the debug target + * associated with this evaluation engine</li> + * <li>The associated thread is suspended in the middle of an + * evaluation that has not completed. It is not possible to + * perform nested evaluations</li> + * </ul> */ - public void evaluateExpression(ICompiledExpression expression, IJavaObject object, IJavaThread thread, IEvaluationListener listener, int evaluationDetail, boolean hitBreakpoints) throws DebugException; + public void evaluateExpression(ICompiledExpression expression, + IJavaObject object, IJavaThread thread, + IEvaluationListener listener, int evaluationDetail, + boolean hitBreakpoints) throws DebugException; /** * Synchronously generates a compiled expression from the given expression - * in the context of the specified stack frame. The generated expression - * can be stored and evaluated later in a valid runtime context. - * Compilation errors are reported in the returned compiled expression. + * in the context of the specified stack frame. The generated expression can + * be stored and evaluated later in a valid runtime context. Compilation + * errors are reported in the returned compiled expression. * - * @param expression expression to compile - * @param frame the context in which to compile the expression - * @exception DebugException if this method fails. Reasons include:<ul> - * <li>Failure communicating with the VM. The DebugException's - * status code contains the underlying exception responsible for - * the failure.</li> - * <li>The associated thread is not currently suspended</li> - * <li>The stack frame is not contained in the debug target - * associated with this evaluation engine</li> - * </ul> + * @param expression + * expression to compile + * @param frame + * the context in which to compile the expression + * @return the compiled expression + * @exception DebugException + * if this method fails. Reasons include: + * <ul> + * <li>Failure communicating with the VM. The + * DebugException's status code contains the underlying + * exception responsible for the failure.</li> + * <li>The associated thread is not currently suspended</li> + * <li>The stack frame is not contained in the debug target + * associated with this evaluation engine</li> + * </ul> */ - public ICompiledExpression getCompiledExpression(String expression, IJavaStackFrame frame) throws DebugException; - + public ICompiledExpression getCompiledExpression(String expression, + IJavaStackFrame frame) throws DebugException; + /** * Synchronously generates a compiled expression from the given expression - * in the context of the specified object. The generated expression - * can be stored and evaluated later in a valid runtime context. - * Compilation errors are reported in the returned compiled expression. + * in the context of the specified object. The generated expression can be + * stored and evaluated later in a valid runtime context. Compilation errors + * are reported in the returned compiled expression. * - * @param expression expression to compile - * @param object the context in which to compile the expression - * @exception DebugException if this method fails. Reasons include:<ul> - * <li>Failure communicating with the VM. The DebugException's - * status code contains the underlying exception responsible for - * the failure.</li> - * <li>The associated thread is not currently suspended</li> - * <li>The stack frame is not contained in the debug target - * associated with this evaluation engine</li> - * </ul> + * @param expression + * expression to compile + * @param object + * the context in which to compile the expression + * @return the compiled epxression + * @exception DebugException + * if this method fails. Reasons include: + * <ul> + * <li>Failure communicating with the VM. The + * DebugException's status code contains the underlying + * exception responsible for the failure.</li> + * <li>The associated thread is not currently suspended</li> + * <li>The stack frame is not contained in the debug target + * associated with this evaluation engine</li> + * </ul> */ - public ICompiledExpression getCompiledExpression(String expression, IJavaObject object) throws DebugException; + public ICompiledExpression getCompiledExpression(String expression, + IJavaObject object) throws DebugException; /** * Synchronously generates a compiled expression from the given expression - * in the context of the specified type. The generated expression - * can be stored and evaluated later in a valid runtime context. - * Compilation errors are reported in the returned compiled expression. + * in the context of the specified type. The generated expression can be + * stored and evaluated later in a valid runtime context. Compilation errors + * are reported in the returned compiled expression. * - * @param expression expression to compile - * @param type the context in which to compile the expression - * @exception DebugException if this method fails. Reasons include:<ul> - * <li>Failure communicating with the VM. The DebugException's - * status code contains the underlying exception responsible for - * the failure.</li> - * <li>The associated thread is not currently suspended</li> - * <li>The stack frame is not contained in the debug target - * associated with this evaluation engine</li> - * </ul> + * @param expression + * expression to compile + * @param type + * the context in which to compile the expression + * @return the compiled expression + * @exception DebugException + * if this method fails. Reasons include: + * <ul> + * <li>Failure communicating with the VM. The + * DebugException's status code contains the underlying + * exception responsible for the failure.</li> + * <li>The associated thread is not currently suspended</li> + * <li>The stack frame is not contained in the debug target + * associated with this evaluation engine</li> + * </ul> * @since 3.1 */ - public ICompiledExpression getCompiledExpression(String expression, IJavaReferenceType type) throws DebugException; + public ICompiledExpression getCompiledExpression(String expression, + IJavaReferenceType type) throws DebugException; - } - |