Class VariableScope

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

public class VariableScope
extends java.lang.Object
Records declared and referenced variabes for a given scope. Helps determine variable sharing across closure and method boundaries.
  • 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​(java.lang.String name)
    • getReferencedLocalVariable

      public Variable getReferencedLocalVariable​(java.lang.String name)
    • getReferencedClassVariable

      public Variable getReferencedClassVariable​(java.lang.String name)
    • isReferencedLocalVariable

      public boolean isReferencedLocalVariable​(java.lang.String name)
    • isReferencedClassVariable

      public boolean isReferencedClassVariable​(java.lang.String name)
    • 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
    • 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
    • getReferencedLocalVariablesCount

      public int getReferencedLocalVariablesCount()
    • 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
    • getReferencedLocalVariablesIterator

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

      public void putDeclaredVariable​(Variable var)
    • putReferencedLocalVariable

      public void putReferencedLocalVariable​(Variable var)
    • putReferencedClassVariable

      public void putReferencedClassVariable​(Variable var)
    • removeReferencedClassVariable

      public java.lang.Object removeReferencedClassVariable​(java.lang.String name)
    • copy

      public VariableScope copy()