org.codehaus.groovy.ast

## Class VariableScope

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

-     public class VariableScope
      extends java.lang.Object

  Represents a variable scope. This is primarily used to determine variable sharing across method and closure boundaries.
  Author:
    James Strachan, Jochen Theodorou

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method 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(java.lang.String name)`
    `java.util.Map<java.lang.String,Variable>` | `getDeclaredVariables()` Gets a map containing the variables declared in this scope.
    `java.util.Iterator<Variable>` | `getDeclaredVariablesIterator()` Gets an iterator for the declared class variables.
    `VariableScope` | `getParent()`
    `Variable` | `getReferencedClassVariable(java.lang.String name)`
    `java.util.Map<java.lang.String,Variable>` | `getReferencedClassVariables()` Gets a map containing the class variables referenced by this scope.
    `java.util.Iterator<Variable>` | `getReferencedClassVariablesIterator()` Gets an iterator for the referenced class variables.
    `Variable` | `getReferencedLocalVariable(java.lang.String name)`
    `int` | `getReferencedLocalVariablesCount()`
    `java.util.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(java.lang.String name)`
    `boolean` | `isReferencedLocalVariable(java.lang.String name)`
    `boolean` | `isRoot()`
    `void` | `putDeclaredVariable(Variable var)`
    `void` | `putReferencedClassVariable(Variable var)`
    `void` | `putReferencedLocalVariable(Variable var)`
    `java.lang.Object` | `removeReferencedClassVariable(java.lang.String name)`
    `void` | `setClassScope(ClassNode node)`
    `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

    - #### getDeclaredVariable

          public Variable getDeclaredVariable(java.lang.String name)

    - #### isReferencedLocalVariable

          public boolean isReferencedLocalVariable(java.lang.String name)

    - #### isReferencedClassVariable

          public boolean isReferencedClassVariable(java.lang.String name)

    - #### getParent

          public VariableScope getParent()

    - #### isInStaticContext

          public boolean isInStaticContext()

    - #### setInStaticContext

          public void setInStaticContext(boolean inStaticContext)

    - #### setClassScope

          public void setClassScope(ClassNode node)

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

    - #### isRoot

          public boolean isRoot()

    - #### copy

          public VariableScope copy()

    - #### putDeclaredVariable

          public void putDeclaredVariable(Variable var)

    - #### getReferencedLocalVariablesIterator

          public java.util.Iterator<Variable> getReferencedLocalVariablesIterator()

    - #### getReferencedLocalVariablesCount

          public int getReferencedLocalVariablesCount()

    - #### getReferencedLocalVariable

          public Variable getReferencedLocalVariable(java.lang.String name)

    - #### putReferencedLocalVariable

          public void putReferencedLocalVariable(Variable var)

    - #### putReferencedClassVariable

          public void putReferencedClassVariable(Variable var)

    - #### getReferencedClassVariable

          public Variable getReferencedClassVariable(java.lang.String name)

    - #### removeReferencedClassVariable

          public java.lang.Object removeReferencedClassVariable(java.lang.String name)

    - #### getReferencedClassVariables

          public java.util.Map<java.lang.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

    - #### getReferencedClassVariablesIterator

          public java.util.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

    - #### getDeclaredVariables

          public java.util.Map<java.lang.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

    - #### getDeclaredVariablesIterator

          public java.util.Iterator<Variable> getDeclaredVariablesIterator()

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