# Interface IExpression

All Superinterfaces:
  `IAdaptable, IDebugElement`

All Known Subinterfaces:
  `IErrorReportingExpression, IWatchExpression`

public interface IExpression extends IDebugElement
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

## Method Summary

Modifier and Type
Method
Description
`void`
`dispose()`
Notifies this expression that it has been removed from the expression manager.
`IDebugTarget`
`getDebugTarget()`
Returns the debug target this expression is associated with, or `null` if this expression is not associated with a debug target.
`String`
`getExpressionText()`
Returns this expression's snippet of code.
`IValue`
`getValue()`
Returns the current value of this expression or `null` if this expression does not currently have a value.

### Methods inherited from interface IAdaptable

`getAdapter`

### Methods inherited from interface IDebugElement

`getLaunch, getModelIdentifier`

## Method Details

### getExpressionText

String getExpressionText()
Returns this expression's snippet of code.

Returns:
  the expression

### getValue

IValue getValue()
Returns the current value of this expression or `null` if this expression does not currently have a value.

Returns:
  value or `null`

### getDebugTarget

IDebugTarget getDebugTarget()
Returns the debug target this expression is associated with, or `null` if this expression is not associated with a debug target.

Specified by:
  `getDebugTarget` in interface `IDebugElement`
Returns:
  debug target or `null`
See Also:
  - `IDebugElement.getDebugTarget()`

### dispose

void dispose()
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.