org.eclipse.wst.jsdt.chromium.debug.core.model

## Class Variable

- java.lang.Object
- - PlatformObject
  - - org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl
    - - org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl.WithConnectedBase
      - - org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl.WithSuspendedBase
        - - org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl.WithEvaluateBase
          - - org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl.WithEvaluate
            - - org.eclipse.wst.jsdt.chromium.debug.core.model.Variable

Direct Known Subclasses:
  Variable.Real

    public abstract class Variable
    extends DebugElementImpl.WithEvaluate

An IVariable implementation over a JsVariable instance. This is class is a base implementation, and it contains several concrete implementations as nested classes.

### Nested Class Summary

Nested Classes
`static class` `Variable.Real` Represents a real variable -- wraps `JsVariable`.

### Nested classes/interfaces inherited from class org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl

`DebugElementImpl.WithConnected, DebugElementImpl.WithConnectedBase, DebugElementImpl.WithEvaluate, DebugElementImpl.WithEvaluateBase, DebugElementImpl.WithSuspended, DebugElementImpl.WithSuspendedBase`

### Constructor Summary

Constructors
`protected` `Variable(EvaluateContext evaluateContext)`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`abstract Variable.Real` `asRealVariable()`
`protected abstract java.lang.String` `createWatchExpression()`
`static Variable` `forEvaluateExpression(EvaluateContext evaluateContext, JsValue jsValue, java.lang.String expression)`
`static Variable` `forException(EvaluateContext evaluateContext, JsValue exceptionValue)`
`static Variable` `forFunctionScopes(EvaluateContext evaluateContext, JsFunction jsFunction, FunctionScopeExtension functionScopeExtension)`
`static Variable` `forObjectScope(EvaluateContext evaluateContext, JsScope.ObjectBased scope, org.eclipse.wst.jsdt.chromium.debug.core.model.ExpressionTracker.Node expressionNode)`
`static Variable` `forRealValue(EvaluateContext evaluateContext, JsVariable jsVariable, boolean isInternalProperty, org.eclipse.wst.jsdt.chromium.debug.core.model.ExpressionTracker.Node trackerNode)` Wraps `JsVariable`.
`java.lang.Object` `getAdapter(java.lang.Class adapter)`
`abstract java.lang.String` `getName()`
`abstract java.lang.String` `getReferenceTypeName()`
`abstract ValueBase` `getValue()`
`boolean` `hasValueChanged()`

### Methods inherited from class org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl.WithEvaluate

`getEvaluateContext`

### Methods inherited from class org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl.WithEvaluateBase

`getSuspendedState`

### Methods inherited from class org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl.WithSuspendedBase

`getConnectedData`

### Methods inherited from class org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl.WithConnectedBase

`getDebugTarget`

### Methods inherited from class org.eclipse.wst.jsdt.chromium.debug.core.model.DebugElementImpl

`getLaunch, getModelIdentifier`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Variable

    protected Variable(EvaluateContext evaluateContext)

### Method Detail

#### forRealValue

    public static Variable forRealValue(EvaluateContext evaluateContext,
                                        JsVariable jsVariable,
                                        boolean isInternalProperty,
                                        org.eclipse.wst.jsdt.chromium.debug.core.model.ExpressionTracker.Node trackerNode)

Wraps `JsVariable`. It extracts its `JsValue` if possible or provides error message as a `Value`.

#### forException

    public static Variable forException(EvaluateContext evaluateContext,
                                        JsValue exceptionValue)

#### forObjectScope

    public static Variable forObjectScope(EvaluateContext evaluateContext,
                                          JsScope.ObjectBased scope,
                                          org.eclipse.wst.jsdt.chromium.debug.core.model.ExpressionTracker.Node expressionNode)

#### forFunctionScopes

    public static Variable forFunctionScopes(EvaluateContext evaluateContext,
                                             JsFunction jsFunction,
                                             FunctionScopeExtension functionScopeExtension)

#### forEvaluateExpression

    public static Variable forEvaluateExpression(EvaluateContext evaluateContext,
                                                 JsValue jsValue,
                                                 java.lang.String expression)

#### getName

    public abstract java.lang.String getName()

#### getReferenceTypeName

    public abstract java.lang.String getReferenceTypeName()

#### getValue

    public abstract ValueBase getValue()

#### hasValueChanged

    public boolean hasValueChanged()
                            throws DebugException

Throws:
  `DebugException`

#### createWatchExpression

    protected abstract java.lang.String createWatchExpression()

Returns:
  expression or null

#### asRealVariable

    public abstract Variable.Real asRealVariable()

#### getAdapter

    public java.lang.Object getAdapter(java.lang.Class adapter)

Overrides:
  `getAdapter` in class `DebugElementImpl`