Class CompileUnit

All Implemented Interfaces:

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()
      a list of all the classes in each module in the compilation unit
    • getClass

      public ClassNode getClass(String name)
      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()
    • iterateClassNodeToCompile

      @Deprecated public Iterator<String> iterateClassNodeToCompile()
    • 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)