Package org.codehaus.groovy.ast

## Class VariableScope

- java.lang.Object
- - org.codehaus.groovy.ast.VariableScope

-     public class VariableScope
      extends Object

  Records declared and referenced variabes for a given scope. Helps determine variable sharing across closure and method boundaries.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `VariableScope()` |
    `VariableScope​(VariableScope parent)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `VariableScope` | `copy()` |
    `ClassNode` | `getClassScope()` | Non-null iff this scope corresponds to a class; as opposed to a method, "if" statement, block statement, etc.
    `Variable` | `getDeclaredVariable​(String name)` |
    `Map<String,​Variable>` | `getDeclaredVariables()` | Gets a map containing the variables declared in this scope.
    `Iterator<Variable>` | `getDeclaredVariablesIterator()` | Gets an iterator for the declared class variables.
    `VariableScope` | `getParent()` |
    `Variable` | `getReferencedClassVariable​(String name)` |
    `Map<String,​Variable>` | `getReferencedClassVariables()` | Gets a map containing the class variables referenced by this scope.
    `Iterator<Variable>` | `getReferencedClassVariablesIterator()` | Gets an iterator for the referenced class variables.
    `Variable` | `getReferencedLocalVariable​(String name)` |
    `int` | `getReferencedLocalVariablesCount()` |
    `Iterator<Variable>` | `getReferencedLocalVariablesIterator()` | Gets an iterator for the referenced local variables.
    `boolean` | `isClassScope()` | Returns true iff this scope corresponds to a class; as opposed to a method, "if" statement, block statement, etc.
    `boolean` | `isInStaticContext()` |
    `boolean` | `isReferencedClassVariable​(String name)` |
    `boolean` | `isReferencedLocalVariable​(String name)` |
    `boolean` | `isRoot()` |
    `void` | `putDeclaredVariable​(Variable var)` |
    `void` | `putReferencedClassVariable​(Variable var)` |
    `void` | `putReferencedLocalVariable​(Variable var)` |
    `Object` | `removeReferencedClassVariable​(String name)` |
    `void` | `setClassScope​(ClassNode classScope)` |
    `void` | `setInStaticContext​(boolean inStaticContext)` |

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

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

- - ### Constructor Detail

    - #### VariableScope

          public VariableScope()

    - #### VariableScope

          public VariableScope​(VariableScope parent)

  - ### Method Detail

    - #### getParent

          public VariableScope getParent()

    - #### isRoot

          public boolean isRoot()

    - #### getClassScope

          public ClassNode getClassScope()

      Non-null iff this scope corresponds to a class; as opposed to a method, "if" statement, block statement, etc.

    - #### isClassScope

          public boolean isClassScope()

      Returns true iff this scope corresponds to a class; as opposed to a method, "if" statement, block statement, etc.

    - #### setClassScope

          public void setClassScope​(ClassNode classScope)

    - #### isInStaticContext

          public boolean isInStaticContext()

    - #### setInStaticContext

          public void setInStaticContext​(boolean inStaticContext)

    - #### getDeclaredVariable

          public Variable getDeclaredVariable​(String name)

    - #### getReferencedLocalVariable

          public Variable getReferencedLocalVariable​(String name)

    - #### getReferencedClassVariable

          public Variable getReferencedClassVariable​(String name)

    - #### isReferencedLocalVariable

          public boolean isReferencedLocalVariable​(String name)

    - #### isReferencedClassVariable

          public boolean isReferencedClassVariable​(String name)

    - #### getDeclaredVariables

          public Map<String,​Variable> getDeclaredVariables()

      Gets a map containing the variables declared in this scope. This map cannot be modified.
      Returns:
        a map containing the declared variable references

    - #### getReferencedClassVariables

          public Map<String,​Variable> getReferencedClassVariables()

      Gets a map containing the class variables referenced by this scope. This not can not be modified.
      Returns:
        a map containing the class variable references

    - #### getReferencedLocalVariablesCount

          public int getReferencedLocalVariablesCount()

    - #### getDeclaredVariablesIterator

          public Iterator<Variable> getDeclaredVariablesIterator()

      Gets an iterator for the declared class variables. The remove operation is not supported.
      Returns:
        an iterator for the declared variables

    - #### getReferencedLocalVariablesIterator

          public Iterator<Variable> getReferencedLocalVariablesIterator()

      Gets an iterator for the referenced local variables. The remove operation *is* supported.
      Returns:
        an iterator for the referenced local variables

    - #### getReferencedClassVariablesIterator

          public Iterator<Variable> getReferencedClassVariablesIterator()

      Gets an iterator for the referenced class variables. The remove operation is not supported.
      Returns:
        an iterator for the referenced class variables

    - #### putDeclaredVariable

          public void putDeclaredVariable​(Variable var)

    - #### putReferencedLocalVariable

          public void putReferencedLocalVariable​(Variable var)

    - #### putReferencedClassVariable

          public void putReferencedClassVariable​(Variable var)

    - #### removeReferencedClassVariable

          public Object removeReferencedClassVariable​(String name)

    - #### copy

          public VariableScope copy()