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.
Modifiers | Name | Description |
---|---|---|
static class |
CompileUnit.ConstructedOuterNestedClassNode |
Represents a resolved type as a placeholder. |
Type | Name and description |
---|---|
Map<?, ?> |
metaDataMap |
Constructor and description |
---|
CompileUnit
(groovy.lang.GroovyClassLoader classLoader, org.codehaus.groovy.control.CompilerConfiguration config) |
CompileUnit
(groovy.lang.GroovyClassLoader classLoader, CodeSource codeSource, org.codehaus.groovy.control.CompilerConfiguration config) |
Type Params | Return Type | Name and description |
---|---|---|
|
void |
addClass(org.codehaus.groovy.ast.ClassNode node) Adds a class to the unit. |
|
void |
addClassNodeToCompile(org.codehaus.groovy.ast.ClassNode node, org.codehaus.groovy.control.SourceUnit location) this method actually does not compile a class. |
|
void |
addClassNodeToResolve(CompileUnit.ConstructedOuterNestedClassNode cn) Add a constructed class node as a placeholder to resolve outer nested class further. |
|
void |
addGeneratedInnerClass(InnerClassNode icn) |
|
void |
addModule(ModuleNode node) |
|
org.codehaus.groovy.ast.ClassNode |
getClass(String name) @return 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) |
|
groovy.lang.GroovyClassLoader |
getClassLoader() |
|
List<org.codehaus.groovy.ast.ClassNode> |
getClasses() @return a list of all the classes in each module in the compilation unit |
|
Map<String, org.codehaus.groovy.ast.ClassNode> |
getClassesToCompile() |
|
Map<String, ConstructedOuterNestedClassNode> |
getClassesToResolve() |
|
CodeSource |
getCodeSource() |
|
org.codehaus.groovy.control.CompilerConfiguration |
getConfig() |
|
InnerClassNode |
getGeneratedInnerClass(String name) |
|
Map<String, InnerClassNode> |
getGeneratedInnerClasses() |
|
Map<?, ?> |
getMetaDataMap() |
|
List<ModuleNode> |
getModules() |
|
org.codehaus.groovy.control.SourceUnit |
getScriptSourceLocation(String className) |
|
boolean |
hasClassNodeToCompile() |
|
Iterator<String> |
iterateClassNodeToCompile() |
|
void |
setMetaDataMap(Map<?, ?> metaDataMap) |
Adds a class to the unit.
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.
Add a constructed class node as a placeholder to resolve outer nested class further.
cn
- the constructed class node
Copyright © 2003-2019 The Apache Software Foundation. All rights reserved.