| /******************************************************************************* |
| * Copyright (c) 2000, 2003 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.debug.core.model; |
| |
| /** |
| * A watch expression is an expression that is evaluated in the context |
| * of a specific stack frame, thread, debug target, process, or launch. |
| * Generally, a watch expression is a snippet of code that is evaluated |
| * each time a debug target suspends, or when a user provides a context |
| * for an evaluation by selecting a debug target or thread. An expression |
| * updates its value when it is provided with a context in which it |
| * can perform an evaluation. |
| * |
| * @since 3.0 |
| */ |
| public interface IWatchExpression extends IExpression { |
| |
| /** |
| * Sets the context for this watch expression, or <code>null</code> if none. |
| * If the given context is valid for this expression, this expression may |
| * update its value. When the value update is complete, a change event is |
| * fired. When <code>null</code> is specified as a context, this expression |
| * may choose to retain its previous value. |
| * <p> |
| * The context is usually one of (but not limited to): |
| * <ul> |
| * <li>a launch (<code>ILaunch</code>)</li> |
| * <li>a debug target (<code>IDebugTarget</code>)</li> |
| * <li>a thread (<code>IThread</code>)</li> |
| * <li>a stack frame (<code>IStackFrame</code>)</li> |
| * </ul> |
| * </p> |
| * |
| * @param context context in which to update this expression's value, or |
| * <code>null</code> if none |
| */ |
| public void setExpressionContext(IDebugElement context); |
| /** |
| * Sets this watch expression's snippet of code. |
| * |
| * @param expressionText the snippet which will be evaluated |
| */ |
| public void setExpressionText(String expressionText); |
| /** |
| * Returns whether the result of this watch expression is pending. |
| * An expression is pending if an evaluation has been requested, but |
| * the value has not yet been returned. |
| * |
| * @return whether this expression's result is pending |
| */ |
| public boolean isPending(); |
| /** |
| * Returns whether this expression has errors to report. An expression |
| * can have errors if errors were generated the last time its value was |
| * computed |
| * |
| * @return whether this expression's result has errors |
| */ |
| public boolean hasErrors(); |
| /** |
| * Returns this expression's error messages, if any. An expression can |
| * have errors if errors were generated the last time its value was |
| * computed. |
| * |
| * @return this expression's error messages |
| */ |
| public String[] getErrorMessages(); |
| /** |
| * Returns whether this expression is enabled. An enabled expression will |
| * update its value. A disabled expression will not. |
| * |
| * @return whether this expression is enabled |
| */ |
| public boolean isEnabled(); |
| /** |
| * Sets this expression's enabled state. |
| * |
| * @param enabled whether this expression should be enabled |
| */ |
| public void setEnabled(boolean enabled); |
| /** |
| * Returns whether this expression's value is obsolete. An expression is |
| * obsolete if it has a value, is disabled, and then has a new |
| * context set. |
| * |
| * @return whether this expression's value is obsolete |
| */ |
| public boolean isObsolete(); |
| |
| } |