Package: org.codehaus.groovy.ast

## [Java] Class VariableScope

- org.codehaus.groovy.ast.VariableScope

- Represents a variable scope. This is primarily used to determine variable sharing across method and closure boundaries.

  Authors:
    James Strachan
    Jochen Theodorou

- - ### Constructor Summary

    Constructors
    Constructor and description
    `VariableScope ()`
    `VariableScope (VariableScope parent)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and 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()`
    `` | `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 node)`
    `` | `void` | `setInStaticContext(boolean inStaticContext)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Constructor Detail

    - #### public VariableScope()

    - #### public VariableScope(VariableScope parent)

  - ### Method Detail

    - #### public VariableScope copy()

    - #### public ClassNode getClassScope()

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

    - #### public Variable getDeclaredVariable(String name)

    - #### 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

    - #### 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

    - #### public VariableScope getParent()

    - #### public Variable getReferencedClassVariable(String name)

    - #### 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

    - #### 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

    - #### public Variable getReferencedLocalVariable(String name)

    - #### public int getReferencedLocalVariablesCount()

    - #### public Iterator<Variable> getReferencedLocalVariablesIterator()

    - #### public boolean isClassScope()

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

    - #### public boolean isInStaticContext()

    - #### public boolean isReferencedClassVariable(String name)

    - #### public boolean isReferencedLocalVariable(String name)

    - #### public boolean isRoot()

    - #### public void putDeclaredVariable(Variable var)

    - #### public void putReferencedClassVariable(Variable var)

    - #### public void putReferencedLocalVariable(Variable var)

    - #### public Object removeReferencedClassVariable(String name)

    - #### public void setClassScope(ClassNode node)

    - #### public void setInStaticContext(boolean inStaticContext)