Package org.codehaus.groovy.ast

## Interface Variable

- All Known Implementing Classes:
    `DynamicVariable`, `FieldNode`, `Parameter`, `PropertyNode`, `VariableExpression`

      public interface Variable

  interface to mark a AstNode as Variable. Typically these are VariableExpression, FieldNode, PropertyNode and Parameter

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Expression` | `getInitialExpression()` | expression used to initialize the variable or null of there is no initialization.
    `int` | `getModifiers()` |
    `String` | `getName()` | the name of the variable
    `ClassNode` | `getOriginType()` | the type before wrapping primitives type of the variable
    `ClassNode` | `getType()` | the type of the variable
    `boolean` | `hasInitialExpression()` | returns true if there is an initialization expression
    `boolean` | `isClosureSharedVariable()` |
    `boolean` | `isDynamicTyped()` |
    `boolean` | `isInStaticContext()` | returns true if this variable is used in a static context.
    `void` | `setClosureSharedVariable​(boolean inClosure)` |

- - ### Method Detail

    - #### getType

          ClassNode getType()

      the type of the variable

    - #### getOriginType

          ClassNode getOriginType()

      the type before wrapping primitives type of the variable

    - #### getName

          String getName()

      the name of the variable

    - #### getInitialExpression

          Expression getInitialExpression()

      expression used to initialize the variable or null of there is no initialization.

    - #### hasInitialExpression

          boolean hasInitialExpression()

      returns true if there is an initialization expression

    - #### isInStaticContext

          boolean isInStaticContext()

      returns true if this variable is used in a static context. A static context is any static initializer block, when this variable is declared as static or when this variable is used in a static method

    - #### isDynamicTyped

          boolean isDynamicTyped()

    - #### isClosureSharedVariable

          boolean isClosureSharedVariable()

    - #### setClosureSharedVariable

          void setClosureSharedVariable​(boolean inClosure)

    - #### getModifiers

          int getModifiers()