Class CompileUnit

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

public class CompileUnit
extends java.lang.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

    • getModules

      public java.util.List<ModuleNode> getModules()
    • addModule

      public void addModule​(ModuleNode node)
    • getClass

      public ClassNode getClass​(java.lang.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)
    • getClasses

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

      public CompilerConfiguration getConfig()
    • getClassLoader

      public GroovyClassLoader getClassLoader()
    • getCodeSource

      public java.security.CodeSource getCodeSource()
    • 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 be left.
    • getClassesToCompile

      public java.util.Map<java.lang.String,​ClassNode> getClassesToCompile()
    • iterateClassNodeToCompile

      public java.util.Iterator<java.lang.String> iterateClassNodeToCompile()
    • hasClassNodeToCompile

      public boolean hasClassNodeToCompile()
    • addGeneratedInnerClass

      public void addGeneratedInnerClass​(InnerClassNode icn)
    • getGeneratedInnerClass

      public InnerClassNode getGeneratedInnerClass​(java.lang.String name)
    • getGeneratedInnerClasses

      public java.util.Map<java.lang.String,​InnerClassNode> getGeneratedInnerClasses()
    • getScriptSourceLocation

      public SourceUnit getScriptSourceLocation​(java.lang.String scriptClassName)
    • getMetaDataMap

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

      public void setMetaDataMap​(java.util.Map<?,​?> metaDataMap)
      Specified by:
      setMetaDataMap in interface NodeMetaDataHandler
    • addClassNodeToResolve

      @Deprecated public void addClassNodeToResolve​(CompileUnit.ConstructedOuterNestedClassNode cn)
      Deprecated.
      Add a constructed class node as a placeholder to resolve outer nested class further.
      Parameters:
      cn - the constructed class node
    • getClassesToResolve

      @Deprecated public java.util.Map<java.lang.String,​CompileUnit.ConstructedOuterNestedClassNode> getClassesToResolve()
      Deprecated.