Package org.codehaus.groovy.ast

# Class CompileUnit

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

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

Author:
  James Strachan

## 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`
`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`
`getClasses()`
`GroovyClassLoader`
`getClassLoader()`
`CodeSource`
`getCodeSource()`
`CompilerConfiguration`
`getConfig()`
`InnerClassNode`
`getGeneratedInnerClass(String name)`
`Map<String,InnerClassNode>`
`getGeneratedInnerClasses()`
`List<ModuleNode>`
`getModules()`
`SourceUnit`
`getScriptSourceLocation(String className)`
`boolean`
`hasClassNodeToCompile()`
`Iterator<String>`
`iterateClassNodeToCompile()`

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

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

## Constructor Details

### CompileUnit

public CompileUnit(GroovyClassLoader classLoader, CompilerConfiguration config)

### CompileUnit

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

## Method Details

### getModules

public List<ModuleNode> getModules()

### addModule

public void addModule(ModuleNode node)

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

### getClasses

public 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 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(String className)

### hasClassNodeToCompile

public boolean hasClassNodeToCompile()

### iterateClassNodeToCompile

public Iterator<String> iterateClassNodeToCompile()

### getGeneratedInnerClass

public InnerClassNode getGeneratedInnerClass(String name)

### addGeneratedInnerClass

public void addGeneratedInnerClass(InnerClassNode icn)

### getGeneratedInnerClasses

public Map<String,InnerClassNode> getGeneratedInnerClasses()