Class CompileUnit

java.lang.Object
org.codehaus.groovy.ast.CompileUnit
All Implemented Interfaces:
NodeMetaDataHandler

public class CompileUnit extends Object implements NodeMetaDataHandler
Represents the entire contents of a compilation step which consists of one or more ModuleNode instances. There's one instance of this that's shared by all modules and classes compiled during a single invocation of the compiler.

It's attached to MethodNodes and ClassNodes and is used to find fully qualified names of classes, resolve imports, and that sort of thing.

  • Constructor Details

  • Method Details

    • getConfig

      public CompilerConfiguration getConfig()
    • getClassLoader

      public GroovyClassLoader getClassLoader()
    • getCodeSource

      public CodeSource getCodeSource()
    • getMetaDataMap

      public Map<?,?> getMetaDataMap()
      Specified by:
      getMetaDataMap in interface NodeMetaDataHandler
    • setMetaDataMap

      public void setMetaDataMap(Map<?,?> metaDataMap)
      Specified by:
      setMetaDataMap in interface NodeMetaDataHandler
    • getModules

      public List<ModuleNode> getModules()
    • getClasses

      public List<ClassNode> getClasses()
      Returns:
      a list of all the classes in each module in the compilation unit
    • getClass

      public ClassNode getClass(String name)
      Returns:
      the ClassNode for the given qualified name or returns null if the name does not exist in the current compilation unit (ignoring the .class files on the classpath)
    • getClassesToCompile

      public Map<String,ClassNode> getClassesToCompile()
    • getScriptSourceLocation

      public SourceUnit getScriptSourceLocation(String className)
    • getGeneratedInnerClasses

      public Map<String,InnerClassNode> getGeneratedInnerClasses()
    • getGeneratedInnerClass

      public InnerClassNode getGeneratedInnerClass(String name)
    • hasClassNodeToCompile

      @Deprecated public boolean hasClassNodeToCompile()
      Deprecated.
    • iterateClassNodeToCompile

      @Deprecated public Iterator<String> iterateClassNodeToCompile()
      Deprecated.
    • addModule

      public void addModule(ModuleNode node)
    • addClasses

      public void addClasses(List<ClassNode> list)
      Appends all of the fully-qualified class names in this module into the given map.
    • addClass

      public void addClass(ClassNode node)
      Adds a class to the unit.
    • addClassNodeToCompile

      public void addClassNodeToCompile(ClassNode node, SourceUnit location)
      this method actually does not compile a class. It's only a marker that this type has to be compiled by the CompilationUnit at the end of a parse step no node should be left.
    • addGeneratedInnerClass

      public void addGeneratedInnerClass(InnerClassNode icn)