Package org.codehaus.groovy.ast
Class CompileUnit
- java.lang.Object
 - 
- org.codehaus.groovy.ast.CompileUnit
 
 
- 
public class CompileUnit extends java.lang.ObjectRepresents the entire contents of a compilation step which consists of one or moreModuleNodeinstances. 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.
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCompileUnit.ConstructedOuterNestedClassNodeDeprecated. 
- 
Constructor Summary
Constructors Constructor Description CompileUnit(GroovyClassLoader classLoader, java.security.CodeSource codeSource, CompilerConfiguration config)CompileUnit(GroovyClassLoader classLoader, CompilerConfiguration config) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddClass(ClassNode node)Adds a class to the unit.voidaddClassNodeToCompile(ClassNode node, SourceUnit location)this method actually does not compile a class.voidaddClassNodeToResolve(CompileUnit.ConstructedOuterNestedClassNode cn)Deprecated.voidaddGeneratedInnerClass(InnerClassNode icn)voidaddModule(ModuleNode node)ClassNodegetClass(java.lang.String name)java.util.List<ClassNode>getClasses()java.util.Map<java.lang.String,ClassNode>getClassesToCompile()java.util.Map<java.lang.String,CompileUnit.ConstructedOuterNestedClassNode>getClassesToResolve()Deprecated.GroovyClassLoadergetClassLoader()java.security.CodeSourcegetCodeSource()CompilerConfigurationgetConfig()InnerClassNodegetGeneratedInnerClass(java.lang.String name)java.util.Map<java.lang.String,InnerClassNode>getGeneratedInnerClasses()ListHashMapgetMetaDataMap()java.util.List<ModuleNode>getModules()java.util.Map<?,?>getNodeMetaData()Returns an unmodifiable view of the current node metadata.<T> TgetNodeMetaData(java.lang.Object key)Gets the node meta data for the provided key.SourceUnitgetScriptSourceLocation(java.lang.String scriptClassName)booleanhasClassNodeToCompile()java.util.Iterator<java.lang.String>iterateClassNodeToCompile()java.lang.ObjectputNodeMetaData(java.lang.Object key, java.lang.Object value)Sets the node meta data but allows overwriting values.voidremoveNodeMetaData(java.lang.Object key)Removes a node meta data entry.voidsetNodeMetaData(java.lang.Object key, java.lang.Object value)Sets the node meta data for the provided key. 
 - 
 
- 
- 
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<ClassNode> 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. 
- 
getClassesToCompile
public java.util.Map<java.lang.String,ClassNode> getClassesToCompile()
 
- 
iterateClassNodeToCompile
public java.util.Iterator<java.lang.String> iterateClassNodeToCompile()
 
- 
hasClassNodeToCompile
public boolean hasClassNodeToCompile()
 
- 
addGeneratedInnerClass
public void addGeneratedInnerClass(InnerClassNode icn)
 
- 
getGeneratedInnerClass
public InnerClassNode getGeneratedInnerClass(java.lang.String name)
 
- 
getGeneratedInnerClasses
public java.util.Map<java.lang.String,InnerClassNode> getGeneratedInnerClasses()
 
- 
getScriptSourceLocation
public SourceUnit getScriptSourceLocation(java.lang.String scriptClassName)
 
- 
getNodeMetaData
public <T> T getNodeMetaData(java.lang.Object key)
Gets the node meta data for the provided key.- Parameters:
 key- - the meta data key- Returns:
 - the node meta data value for this key
 
 
- 
setNodeMetaData
public void setNodeMetaData(java.lang.Object key, java.lang.Object value)Sets the node meta data for the provided key.- Parameters:
 key- - the meta data keyvalue- - the meta data value- Throws:
 GroovyBugError- if key is null or there is already meta data under that key
 
- 
putNodeMetaData
public java.lang.Object putNodeMetaData(java.lang.Object key, java.lang.Object value)Sets the node meta data but allows overwriting values.- Parameters:
 key- - the meta data keyvalue- - the meta data value- Returns:
 - the old node meta data value for this key
 - Throws:
 GroovyBugError- if key is null
 
- 
removeNodeMetaData
public void removeNodeMetaData(java.lang.Object key)
Removes a node meta data entry.- Parameters:
 key- - the meta data key- Throws:
 GroovyBugError- if the key is null
 
- 
getNodeMetaData
public java.util.Map<?,?> getNodeMetaData()
Returns an unmodifiable view of the current node metadata.- Returns:
 - the node metadata. Always not null.
 
 
- 
getMetaDataMap
public ListHashMap getMetaDataMap()
 
- 
addClassNodeToResolve
@Deprecated public void addClassNodeToResolve(CompileUnit.ConstructedOuterNestedClassNode cn)
Deprecated.Add a constructed class node as a placeholder to resolve outer nested class further.- Parameters:
 cn- the constructed class node
 
- 
getClassesToResolve
@Deprecated public java.util.Map<java.lang.String,CompileUnit.ConstructedOuterNestedClassNode> getClassesToResolve()
Deprecated. 
 - 
 
 -