org.codehaus.groovy.ast

## Class CompileUnit

- java.lang.Object
- - org.codehaus.groovy.ast.CompileUnit

    public class CompileUnit
    extends java.lang.Object

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 and Description
`CompileUnit(GroovyClassLoader classLoader, java.security.CodeSource codeSource, CompilerConfiguration config)`
`CompileUnit(GroovyClassLoader classLoader, CompilerConfiguration config)`

### Method Summary

Methods
`void` `addClass(ClassNode node)` Adds a class to the unit.
`void` `addClassNodeToCompile(ClassNode node, SourceUnit location)` this method actually does not compile a class.
`void` `addGeneratedInnerClass(InnerClassNode icn)`
`void` `addModule(ModuleNode node)`
`ClassNode` `getClass(java.lang.String name)`
`java.util.List` `getClasses()`
`GroovyClassLoader` `getClassLoader()`
`java.security.CodeSource` `getCodeSource()`
`CompilerConfiguration` `getConfig()`
`InnerClassNode` `getGeneratedInnerClass(java.lang.String name)`
`java.util.List<ModuleNode>` `getModules()`
`SourceUnit` `getScriptSourceLocation(java.lang.String className)`
`boolean` `hasClassNodeToCompile()`
`java.util.Iterator<java.lang.String>` `iterateClassNodeToCompile()`

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

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

### Constructor Detail

#### CompileUnit

    public CompileUnit(GroovyClassLoader classLoader,
               CompilerConfiguration config)

#### CompileUnit

    public CompileUnit(GroovyClassLoader classLoader,
               java.security.CodeSource codeSource,
               CompilerConfiguration config)

### Method Detail

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

#### getScriptSourceLocation

    public SourceUnit getScriptSourceLocation(java.lang.String className)

#### hasClassNodeToCompile

    public boolean hasClassNodeToCompile()

#### iterateClassNodeToCompile

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

#### getGeneratedInnerClass

    public InnerClassNode getGeneratedInnerClass(java.lang.String name)

#### addGeneratedInnerClass

    public void addGeneratedInnerClass(InnerClassNode icn)