Top Description Inners Fields Constructors Methods
org.codehaus.groovy.ast

public Class CompileUnit

extends Object
implements NodeMetaDataHandler
Class Inheritance
All Implemented Interfaces
org.codehaus.groovy.ast.NodeMetaDataHandler
Imports
groovy.lang.GroovyClassLoader, groovy.transform.Internal, org.codehaus.groovy.control.CompilerConfiguration, .SourceUnit, org.codehaus.groovy.control.messages.SyntaxErrorMessage, org.codehaus.groovy.syntax.SyntaxException, java.security.CodeSource, java.util.ArrayList, .Collections, .Iterator, .LinkedHashMap, .List, .Map, java.util.function.BiConsumer

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.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
CompileUnit.ConstructedOuterNestedClassNode

Deprecated
Represents a resolved type as a placeholder.

Field Summary

Modifier and TypeField and Description
private final Map<String, ClassNode>
private final Map<String, ClassNode>
private final Map<String, CompileUnit.ConstructedOuterNestedClassNode>
private final GroovyClassLoader
private final Map<String, SourceUnit>
private final CodeSource
private final CompilerConfiguration
private final Map<String, InnerClassNode>
private Map<K, V>
private final List<ModuleNode>

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
public void
addClass(ClassNode node)

Adds a class to the unit.

pack-priv void
addClasses(List<ClassNode> classList)

Appends all of the fully qualified class names in this module into the given map

public void
addClassNodeToCompile(ClassNode node, SourceUnit location)

this method actually does not compile a class.

public void
addClassNodeToResolve(CompileUnit.ConstructedOuterNestedClassNode
the constructed class node
cn
)

Deprecated
Add a constructed class node as a placeholder to resolve outer nested class further.
public void
public void
public ClassNode

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)
getClass
(String name)

public List<ClassNode>

Returns:

a list of all the classes in each module in the compilation unit
getClasses
()

public Map<String, ClassNode>
public Map<String, CompileUnit.ConstructedOuterNestedClassNode>
getClassesToResolve()

Deprecated
public GroovyClassLoader
public CodeSource
public CompilerConfiguration
public InnerClassNode
public Map<String, InnerClassNode>
public Map<?, ?>
public List<ModuleNode>
public SourceUnit
public boolean
public Iterator<String>
public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

classesback to summary
private final Map<String, ClassNode> classes
classesToCompileback to summary
private final Map<String, ClassNode> classesToCompile
classesToResolveback to summary
private final Map<String, CompileUnit.ConstructedOuterNestedClassNode> classesToResolve
classLoaderback to summary
private final GroovyClassLoader classLoader
classNameToSourceback to summary
private final Map<String, SourceUnit> classNameToSource
codeSourceback to summary
private final CodeSource codeSource
configback to summary
private final CompilerConfiguration config
generatedInnerClassesback to summary
private final Map<String, InnerClassNode> generatedInnerClasses
metaDataMapback to summary
private Map<K, V> metaDataMap
modulesback to summary
private final List<ModuleNode> modules

Constructor Detail

CompileUnitback to summary
public CompileUnit(GroovyClassLoader classLoader, CompilerConfiguration config)
CompileUnitback to summary
public CompileUnit(GroovyClassLoader classLoader, CodeSource codeSource, CompilerConfiguration config)

Method Detail

addClassback to summary
public void addClass(ClassNode node)

Adds a class to the unit.

addClassesback to summary
pack-priv void addClasses(List<ClassNode> classList)

Appends all of the fully qualified class names in this module into the given map

addClassNodeToCompileback to summary
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.

addClassNodeToResolveback to summary
public void addClassNodeToResolve(CompileUnit.ConstructedOuterNestedClassNode cn)

Deprecated

Add a constructed class node as a placeholder to resolve outer nested class further.

Parameters
cn:CompileUnit.ConstructedOuterNestedClassNode

the constructed class node

Annotations
@Deprecated
addGeneratedInnerClassback to summary
public void addGeneratedInnerClass(InnerClassNode icn)
addModuleback to summary
public void addModule(ModuleNode node)
getClassback to summary
public ClassNode getClass(String name)
Returns:ClassNode

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)

getClassesback to summary
public List<ClassNode> getClasses()
Returns:List<ClassNode>

a list of all the classes in each module in the compilation unit

getClassesToCompileback to summary
public Map<String, ClassNode> getClassesToCompile()
getClassesToResolveback to summary
public Map<String, CompileUnit.ConstructedOuterNestedClassNode> getClassesToResolve()

Deprecated

Annotations
@Deprecated
getClassLoaderback to summary
public GroovyClassLoader getClassLoader()
getCodeSourceback to summary
public CodeSource getCodeSource()
getConfigback to summary
public CompilerConfiguration getConfig()
getGeneratedInnerClassback to summary
public InnerClassNode getGeneratedInnerClass(String name)
getGeneratedInnerClassesback to summary
public Map<String, InnerClassNode> getGeneratedInnerClasses()
getMetaDataMapback to summary
public Map<?, ?> getMetaDataMap()

Implements org.codehaus.groovy.ast.NodeMetaDataHandler.getMetaDataMap.

Annotations
@Override
getModulesback to summary
public List<ModuleNode> getModules()
getScriptSourceLocationback to summary
public SourceUnit getScriptSourceLocation(String scriptClassName)
hasClassNodeToCompileback to summary
public boolean hasClassNodeToCompile()
iterateClassNodeToCompileback to summary
public Iterator<String> iterateClassNodeToCompile()
setMetaDataMapback to summary
public void setMetaDataMap(Map<?, ?> metaDataMap)

Implements org.codehaus.groovy.ast.NodeMetaDataHandler.setMetaDataMap.

Annotations
@Override
org.codehaus.groovy.ast back to summary

public Class CompileUnit.ConstructedOuterNestedClassNode

extends ClassNode
Class Inheritance
Annotations
@Internal
@Deprecated

Deprecated

Represents a resolved type as a placeholder.
See Also
GROOVY-7812

Field Summary

Modifier and TypeField and Description
private final ClassNode
private final List<BiConsumer<CompileUnit.ConstructedOuterNestedClassNode, ClassNode>>
Inherited from org.codehaus.groovy.ast.ClassNode:
clazzEMPTY_ARRAYinnerClassesisPrimaryNodelazyInitLockSUPERTHIS

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
public ClassNode
public void
setRedirect(ClassNode
the class to redirect to; if null the redirect is removed
cn
)

Overrides org.codehaus.groovy.ast.ClassNode.setRedirect.

Sets this instance as proxy for the given ClassNode.
Inherited from org.codehaus.groovy.ast.ClassNode:
addConstructoraddConstructoraddFieldaddFieldaddFieldFirstaddFieldFirstaddInterfaceaddMethodaddMethodaddMixinaddObjectInitializerStatementsaddPropertyaddPropertyaddStaticInitializerStatementsaddSyntheticMethodaddTransformasGenericsTypedeclaresAnyInterfacesdeclaresInterfaceequalsgetAbstractMethodsgetAllDeclaredMethodsgetAllInterfacesgetAnnotationsgetAnnotationsgetCompileUnitgetComponentTypegetDeclaredConstructorgetDeclaredConstructorsgetDeclaredFieldgetDeclaredMethodgetDeclaredMethodsgetDeclaredMethodsMapgetEnclosingMethodgetFieldgetFieldIndexgetFieldsgetGenericsTypesgetGetterMethodgetGetterMethodgetInnerClassesgetInterfacesgetMethodgetMethodsgetMethodsgetMixinsgetModifiersgetModulegetNamegetNameWithoutPackagegetObjectInitializerStatementsgetOuterClassgetOuterClassesgetOuterFieldgetPackagegetPackageNamegetPlainNodeReferencegetPropertiesgetPropertygetSetterMethodgetSetterMethodgetSuperClassgetTextgetTransformsgetTypeClassgetUnresolvedInterfacesgetUnresolvedInterfacesgetUnresolvedNamegetUnresolvedSuperClassgetUnresolvedSuperClasshasDeclaredMethodhashCodehasMethodhasPackageNamehasPossibleMethodhasPossibleStaticMethodhasPropertyimplementsAnyInterfacesimplementsInterfaceisAbstractisAnnotatedisAnnotationDefinitionisArrayisDerivedFromisDerivedFromGroovyObjectisEnumisGenericsPlaceHolderisInterfaceisPrimaryClassNodeisRedirectNodeisResolvedisScriptisScriptBodyisStaticClassisSyntheticPublicisUsingGenericsmakeArrayparametersEqualpositionStmtsAfterEnumInitStmtsredirectremoveConstructorremoveFieldremoveMethodrenameFieldsetAnnotatedsetCompileUnitsetEnclosingMethodsetGenericsPlaceHoldersetGenericsTypessetInterfacessetMixinssetModifierssetModulesetNamesetScriptsetScriptBodysetStaticClasssetSuperClasssetSyntheticPublicsetUnresolvedSuperClasssetUsingGenericstoStringtoStringtryFindPossibleMethodvisitContents

Field Detail

enclosingClassNodeback to summary
private final ClassNode enclosingClassNode
setRedirectListenerListback to summary
private final List<BiConsumer<CompileUnit.ConstructedOuterNestedClassNode, ClassNode>> setRedirectListenerList

Constructor Detail

ConstructedOuterNestedClassNodeback to summary
public ConstructedOuterNestedClassNode(ClassNode outer, String innerClassName)

Method Detail

addSetRedirectListenerback to summary
public void addSetRedirectListener(BiConsumer<CompileUnit.ConstructedOuterNestedClassNode, ClassNode> setRedirectListener)
getEnclosingClassNodeback to summary
public ClassNode getEnclosingClassNode()
setRedirectback to summary
public void setRedirect(ClassNode cn)

Overrides org.codehaus.groovy.ast.ClassNode.setRedirect.

Doc from org.codehaus.groovy.ast.ClassNode.setRedirect.

Sets this instance as proxy for the given ClassNode.

Parameters
cn:ClassNode

the class to redirect to; if null the redirect is removed

Annotations
@Override