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