Package org.codehaus.groovy.ast

# Class VariableScope

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

public class VariableScope extends Object
Records declared and referenced variables for a given scope. Helps determine variable sharing across closure and method boundaries.

- ## Constructor Summary

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

- ## Method Summary

  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 Details

  - ### VariableScope

    public VariableScope()

  - ### VariableScope

    public VariableScope(VariableScope parent)

- ## Method Details

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