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

Version:
  $Revision: 16708 $
Author:
  James Strachan

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

Method Summary
`void` `addClass(ClassNode node)` Adds a class to the unit.
`void` `addClassNodeToCompile(ClassNode node, SourceUnit location)` this emthod actually does not compile a class.
`void` `addModule(ModuleNode node)`
`ClassNode` `getClass(String name)`
`List` `getClasses()`
`GroovyClassLoader` `getClassLoader()`
`CodeSource` `getCodeSource()`
`CompilerConfiguration` `getConfig()`
`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 Detail

### CompileUnit

    public CompileUnit(GroovyClassLoader classLoader,
                       CompilerConfiguration config)

### CompileUnit

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

Method Detail

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

Copyright © 2003-2009 The Codehaus. All rights reserved.