Eclipse Platform
2.0

org.eclipse.debug.core.model
Interface IVariable

All Superinterfaces:
IAdaptable, IDebugElement, IValueModification
All Known Subinterfaces:
IRegister

public interface IVariable
extends IDebugElement, IValueModification

A variable represents a visible data structure in a stack frame or value. Each variable has a value which may in turn contain more variables. A variable may support value modification.

An implementation may choose to re-use or discard variables on iterative thread suspensions. Clients cannot assume that variables are identical or equal across iterative thread suspensions and must check for equality on iterative suspensions if they wish to re-use the objects.

An implementation that preserves equality across iterative suspensions may display more desirable behavior in some clients. For example, if variables are preserved while stepping, a UI client would be able to update the UI incrementally, rather than collapse and redraw the entire list or tree.

Clients may implement this interface.

See Also:
IValue, IStackFrame, IValueModification

Method Summary
 String getName()
          Returns the name of this variable.
 String getReferenceTypeName()
          Returns a description of the type of data this variable is declared to reference.
 IValue getValue()
          Returns the value of this variable.
 boolean hasValueChanged()
          Returns whether this variable's value has changed since the last suspend event.
 
Methods inherited from interface org.eclipse.debug.core.model.IDebugElement
getDebugTarget, getLaunch, getModelIdentifier
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 
Methods inherited from interface org.eclipse.debug.core.model.IValueModification
setValue, setValue, supportsValueModification, verifyValue, verifyValue
 

Method Detail

getValue

public IValue getValue()
                throws DebugException
Returns the value of this variable.

Returns:
this variable's value
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.

getName

public String getName()
               throws DebugException
Returns the name of this variable. Name format is debug model specific, and should be specified by a debug model.

Returns:
this variable's name
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.

getReferenceTypeName

public String getReferenceTypeName()
                            throws DebugException
Returns a description of the type of data this variable is declared to reference. Note that the declared type of a variable and the concrete type of its value are not neccessarily the same.

Returns:
the declared type of this variable
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.

hasValueChanged

public boolean hasValueChanged()
                        throws DebugException
Returns whether this variable's value has changed since the last suspend event. Implementations may choose whether the last suspend event is the last suspend event in this variable's debug target, or within the thread(s) in which this variable is visible.

Implementations that choose not to implement this function should always return false.

Returns:
whether this variable's value has changed since the last suspend event
Throws:
DebugException - if an exception occurs determining if this variable's value has changed since the last suspend event

Eclipse Platform
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.