Copyright (c) 2000, 2013 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2000, 2013 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.debug.core.model;
An expression is a snippet of code that can be evaluated to produce a value. When and how an expression is evaluated is implementation specific. The context/binding required to evaluate an expression varies by debug model, and by user intent. Furthermore, an expression may need to be evaluated at a specific location in a program (for example, at a breakpoint/line where certain variables referenced in the expression are visible/allocated). A user may want to evaluate an expression once to produce a value that can be inspected iteratively, or they may wish to evaluate an expression iteratively producing new values each time (i.e. as in a watch list).

Clients are intended to implement this interface.

Since:2.0
/** * An expression is a snippet of code that can be evaluated * to produce a value. When and how an expression is evaluated * is implementation specific. The context/binding required to * evaluate an expression varies by debug model, and by * user intent. Furthermore, an expression may need to be evaluated * at a specific location in a program (for example, at a * breakpoint/line where certain variables referenced in the * expression are visible/allocated). A user may want to * evaluate an expression once to produce a value that can * be inspected iteratively, or they may wish to evaluate an * expression iteratively producing new values each time * (i.e. as in a watch list). * <p> * Clients are intended to implement this interface. * </p> * @since 2.0 */
public interface IExpression extends IDebugElement {
Returns this expression's snippet of code.
Returns:the expression
/** * Returns this expression's snippet of code. * * @return the expression */
String getExpressionText();
Returns the current value of this expression or null if this expression does not currently have a value.
Returns:value or null
/** * Returns the current value of this expression or * <code>null</code> if this expression does not * currently have a value. * * @return value or <code>null</code> */
IValue getValue();
Returns the debug target this expression is associated with, or null if this expression is not associated with a debug target.
See Also:
Returns:debug target or null
/** * Returns the debug target this expression is associated * with, or <code>null</code> if this expression is not * associated with a debug target. * * @return debug target or <code>null</code> * @see IDebugElement#getDebugTarget() */
@Override IDebugTarget getDebugTarget();
Notifies this expression that it has been removed from the expression manager. Any required clean up is be performed such that this expression can be garbage collected.
/** * Notifies this expression that it has been removed * from the expression manager. Any required clean up * is be performed such that this expression can be * garbage collected. */
void dispose(); }