Package org.codehaus.groovy.ast

# 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 Summary

  Constructors
  Constructor
  Description
  `CompileUnit(GroovyClassLoader classLoader, CodeSource codeSource, CompilerConfiguration config)`
  `CompileUnit(GroovyClassLoader classLoader, CompilerConfiguration config)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addClass(ClassNode node)`
  Adds a class to the unit.
  `void`
  `addClasses(List<ClassNode> list)`
  Appends all of the fully-qualified class names in this module into the given map.
  `void`
  `addClassNodeToCompile(ClassNode node, SourceUnit location)`
  this method actually does not compile a class.
  `void`
  `addGeneratedInnerClass(InnerClassNode icn)`
  `void`
  `addModule(ModuleNode node)`
  `ClassNode`
  `getClass(String name)`
  `List<ClassNode>`
  `getClasses()`
  `Map<String,ClassNode>`
  `getClassesToCompile()`
  `GroovyClassLoader`
  `getClassLoader()`
  `CodeSource`
  `getCodeSource()`
  `CompilerConfiguration`
  `getConfig()`
  `InnerClassNode`
  `getGeneratedInnerClass(String name)`
  `Map<String,InnerClassNode>`
  `getGeneratedInnerClasses()`
  `Map<?,?>`
  `getMetaDataMap()`
  `List<ModuleNode>`
  `getModules()`
  `SourceUnit`
  `getScriptSourceLocation(String className)`
  `boolean`
  `hasClassNodeToCompile()`
  Deprecated.
  `Iterator<String>`
  `iterateClassNodeToCompile()`
  Deprecated.
  `void`
  `setMetaDataMap(Map<?,?> metaDataMap)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler

  `copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, newMetaDataMap, putNodeMetaData, removeNodeMetaData, setNodeMetaData`

- ## Constructor Details

  - ### CompileUnit

    public CompileUnit(GroovyClassLoader classLoader, CompilerConfiguration config)

  - ### CompileUnit

    public CompileUnit(GroovyClassLoader classLoader, CodeSource codeSource, CompilerConfiguration config)

- ## 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)