Package org.codehaus.groovy.control
Class CompilationUnit
- java.lang.Object
- 
- org.codehaus.groovy.control.ProcessingUnit
- 
- org.codehaus.groovy.control.CompilationUnit
 
 
- 
- Direct Known Subclasses:
- JavaAwareCompilationUnit,- JavaStubCompilationUnit
 
 public class CompilationUnit extends ProcessingUnit The CompilationUnit collects all compilation data as it is generated by the compiler system. You can use this object to add additional source units to the compilation, or force the compilation to be run again (to affect only the deltas).You can also add PhaseOperations to this compilation using the addPhaseOperation method. This is commonly used when you want to wire a new AST Transformation into the compilation. 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classCompilationUnit.ClassgenCallbackA callback interface you can use to "accompany" the classgen() code as it traverses the ClassNode tree.static classCompilationUnit.GroovyClassOperationstatic classCompilationUnit.PrimaryClassNodeOperationAn callback interface for use in the applyToPrimaryClassNodes loop driver.static classCompilationUnit.ProgressCallbackA callback interface you can use to get a callback after every unit of the compile process.static classCompilationUnit.SourceUnitOperationAn callback interface for use in the applyToSourceUnits loop driver.
 - 
Field SummaryFields Modifier and Type Field Description protected CompileUnitastprotected ASTTransformationsContextastTransformationsContextprotected CompilationUnit.ClassgenCallbackclassgenCallbackprotected ClassNodeResolverclassNodeResolverprotected java.util.MapclassSourcesByPublicClassNameDeprecated.protected booleanconfiguredprotected booleandebugprotected java.util.List<GroovyClass>generatedClassesprotected java.util.List<java.lang.String>namesprotected OptimizerVisitoroptimizerprotected CompilationUnit.ProgressCallbackprogressCallbackprotected java.util.LinkedList<SourceUnit>queuedSourcesprotected ResolveVisitorresolveVisitorprotected java.util.Map<java.lang.String,SourceUnit>sourcesprotected StaticImportVisitorstaticImportVisitorprotected java.util.MapsummariesByPublicClassNameDeprecated.protected java.util.MapsummariesBySourceNameDeprecated.protected Verifierverifier- 
Fields inherited from class org.codehaus.groovy.control.ProcessingUnitclassLoader, configuration, errorCollector, phase, phaseComplete
 
- 
 - 
Constructor SummaryConstructors Constructor Description CompilationUnit()Initializes the CompilationUnit with defaults.CompilationUnit(GroovyClassLoader loader)Initializes the CompilationUnit with defaults except for class loader.CompilationUnit(CompilerConfiguration configuration)Initializes the CompilationUnit with no security considerations.CompilationUnit(CompilerConfiguration configuration, java.security.CodeSource security, GroovyClassLoader loader)Initializes the CompilationUnit with a CodeSource for controlling security stuff and a class loader for loading classes.CompilationUnit(CompilerConfiguration configuration, java.security.CodeSource security, GroovyClassLoader loader, GroovyClassLoader transformLoader)Initializes the CompilationUnit with a CodeSource for controlling security stuff, a class loader for loading classes, and a class loader for loading AST transformations.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddClassNode(ClassNode node)Adds a ClassNode directly to the unit (ie.voidaddFirstPhaseOperation(CompilationUnit.PrimaryClassNodeOperation op, int phase)voidaddNewPhaseOperation(CompilationUnit.SourceUnitOperation op, int phase)voidaddPhaseOperation(CompilationUnit.GroovyClassOperation op)voidaddPhaseOperation(CompilationUnit.PrimaryClassNodeOperation op, int phase)voidaddPhaseOperation(CompilationUnit.SourceUnitOperation op, int phase)SourceUnitaddSource(java.io.File file)Adds a source file to the unit.SourceUnitaddSource(java.lang.String name, java.io.InputStream stream)Adds a InputStream source to the unit.SourceUnitaddSource(java.lang.String name, java.lang.String scriptText)SourceUnitaddSource(java.net.URL url)Adds a source file to the unit.SourceUnitaddSource(SourceUnit source)Adds a SourceUnit to the unit.voidaddSources(java.io.File[] files)Adds a set of source files to the unit.voidaddSources(java.lang.String[] paths)Adds a set of file paths to the unit.voidapplyToGeneratedGroovyClasses(CompilationUnit.GroovyClassOperation body)voidapplyToPrimaryClassNodes(CompilationUnit.PrimaryClassNodeOperation body)A loop driver for applying operations to all primary ClassNodes in our AST.voidapplyToSourceUnits(CompilationUnit.SourceUnitOperation body)A loop driver for applying operations to all SourceUnits.voidcompile()Synonym for compile(Phases.ALL).voidcompile(int throughPhase)Compiles the compilation unit from sources.voidconfigure(CompilerConfiguration configuration)Configures its debugging mode and classloader classpath from a given compiler configuration.protected org.objectweb.asm.ClassVisitorcreateClassVisitor()protected booleandequeued()Dequeues any source units add through addSource and resets the compiler phase to initialization.CompileUnitgetAST()Returns the CompileUnit that roots our AST.ASTTransformationsContextgetASTTransformationsContext()java.util.ListgetClasses()Get the GroovyClasses generated by compile().CompilationUnit.ClassgenCallbackgetClassgenCallback()ClassNodegetClassNode(java.lang.String name)Convenience routine to get the named ClassNode.ClassNodeResolvergetClassNodeResolver()java.util.MapgetClassSourcesByPublicClassName()Deprecated.ClassNodegetFirstClassNode()Convenience routine to get the first ClassNode, for when you are sure there is only one.CompilationUnit.ProgressCallbackgetProgressCallback()java.util.MapgetSummariesByPublicClassName()Deprecated.java.util.MapgetSummariesBySourceName()Deprecated.GroovyClassLoadergetTransformLoader()Returns the class loader for loading AST transformations.booleanisPublicClass(java.lang.String className)Deprecated.java.util.Iterator<SourceUnit>iterator()Returns an iterator on the unit's SourceUnits.protected voidmark()Updates the phase marker on all sources.voidsetClassgenCallback(CompilationUnit.ClassgenCallback visitor)Sets a ClassgenCallback.voidsetClassNodeResolver(ClassNodeResolver classNodeResolver)voidsetProgressCallback(CompilationUnit.ProgressCallback callback)Sets a ProgressCallback.- 
Methods inherited from class org.codehaus.groovy.control.ProcessingUnitcompletePhase, getClassLoader, getConfiguration, getErrorCollector, getPhase, getPhaseDescription, gotoPhase, isPhaseComplete, nextPhase, setClassLoader, setConfiguration
 
- 
 
- 
- 
- 
Field Detail- 
astTransformationsContextprotected ASTTransformationsContext astTransformationsContext 
 - 
summariesBySourceName@Deprecated protected java.util.Map summariesBySourceName Deprecated.
 - 
summariesByPublicClassName@Deprecated protected java.util.Map summariesByPublicClassName Deprecated.
 - 
classSourcesByPublicClassName@Deprecated protected java.util.Map classSourcesByPublicClassName Deprecated.
 - 
sourcesprotected java.util.Map<java.lang.String,SourceUnit> sources 
 - 
namesprotected java.util.List<java.lang.String> names 
 - 
queuedSourcesprotected java.util.LinkedList<SourceUnit> queuedSources 
 - 
astprotected CompileUnit ast 
 - 
generatedClassesprotected java.util.List<GroovyClass> generatedClasses 
 - 
verifierprotected Verifier verifier 
 - 
debugprotected boolean debug 
 - 
configuredprotected boolean configured 
 - 
classgenCallbackprotected CompilationUnit.ClassgenCallback classgenCallback 
 - 
progressCallbackprotected CompilationUnit.ProgressCallback progressCallback 
 - 
resolveVisitorprotected ResolveVisitor resolveVisitor 
 - 
staticImportVisitorprotected StaticImportVisitor staticImportVisitor 
 - 
optimizerprotected OptimizerVisitor optimizer 
 - 
classNodeResolverprotected ClassNodeResolver classNodeResolver 
 
- 
 - 
Constructor Detail- 
CompilationUnitpublic CompilationUnit() Initializes the CompilationUnit with defaults.
 - 
CompilationUnitpublic CompilationUnit(GroovyClassLoader loader) Initializes the CompilationUnit with defaults except for class loader.
 - 
CompilationUnitpublic CompilationUnit(CompilerConfiguration configuration) Initializes the CompilationUnit with no security considerations.
 - 
CompilationUnitpublic CompilationUnit(CompilerConfiguration configuration, java.security.CodeSource security, GroovyClassLoader loader) Initializes the CompilationUnit with a CodeSource for controlling security stuff and a class loader for loading classes.
 - 
CompilationUnitpublic CompilationUnit(CompilerConfiguration configuration, java.security.CodeSource security, GroovyClassLoader loader, GroovyClassLoader transformLoader) Initializes the CompilationUnit with a CodeSource for controlling security stuff, a class loader for loading classes, and a class loader for loading AST transformations. Note The transform loader must be able to load compiler classes. That means CompilationUnit.class.classLoader must be at last a parent to transformLoader. The other loader has no such constraint.- Parameters:
- transformLoader- - the loader for transforms
- loader- - loader used to resolve classes against during compilation
- security- - security setting for the compilation
- configuration- - compilation configuration
 
 
- 
 - 
Method Detail- 
getTransformLoaderpublic GroovyClassLoader getTransformLoader() Returns the class loader for loading AST transformations.
 - 
addPhaseOperationpublic void addPhaseOperation(CompilationUnit.SourceUnitOperation op, int phase) 
 - 
addPhaseOperationpublic void addPhaseOperation(CompilationUnit.PrimaryClassNodeOperation op, int phase) 
 - 
addFirstPhaseOperationpublic void addFirstPhaseOperation(CompilationUnit.PrimaryClassNodeOperation op, int phase) 
 - 
addPhaseOperationpublic void addPhaseOperation(CompilationUnit.GroovyClassOperation op) 
 - 
addNewPhaseOperationpublic void addNewPhaseOperation(CompilationUnit.SourceUnitOperation op, int phase) 
 - 
configurepublic void configure(CompilerConfiguration configuration) Configures its debugging mode and classloader classpath from a given compiler configuration. This cannot be done more than once due to limitations inURLClassLoader.- Overrides:
- configurein class- ProcessingUnit
 
 - 
getASTpublic CompileUnit getAST() Returns the CompileUnit that roots our AST.
 - 
getSummariesBySourceName@Deprecated public java.util.Map getSummariesBySourceName() Deprecated.
 - 
getSummariesByPublicClassName@Deprecated public java.util.Map getSummariesByPublicClassName() Deprecated.
 - 
getClassSourcesByPublicClassName@Deprecated public java.util.Map getClassSourcesByPublicClassName() Deprecated.
 - 
isPublicClass@Deprecated public boolean isPublicClass(java.lang.String className) Deprecated.
 - 
getClassespublic java.util.List getClasses() Get the GroovyClasses generated by compile().
 - 
getFirstClassNodepublic ClassNode getFirstClassNode() Convenience routine to get the first ClassNode, for when you are sure there is only one.
 - 
getClassNodepublic ClassNode getClassNode(java.lang.String name) Convenience routine to get the named ClassNode.
 - 
getASTTransformationsContextpublic ASTTransformationsContext getASTTransformationsContext() - Returns:
- the AST transformations current context
 
 - 
addSourcespublic void addSources(java.lang.String[] paths) Adds a set of file paths to the unit.
 - 
addSourcespublic void addSources(java.io.File[] files) Adds a set of source files to the unit.
 - 
addSourcepublic SourceUnit addSource(java.io.File file) Adds a source file to the unit.
 - 
addSourcepublic SourceUnit addSource(java.net.URL url) Adds a source file to the unit.
 - 
addSourcepublic SourceUnit addSource(java.lang.String name, java.io.InputStream stream) Adds a InputStream source to the unit.
 - 
addSourcepublic SourceUnit addSource(java.lang.String name, java.lang.String scriptText) 
 - 
addSourcepublic SourceUnit addSource(SourceUnit source) Adds a SourceUnit to the unit.
 - 
iteratorpublic java.util.Iterator<SourceUnit> iterator() Returns an iterator on the unit's SourceUnits.
 - 
addClassNodepublic void addClassNode(ClassNode node) Adds a ClassNode directly to the unit (ie. without source). WARNING: the source is needed for error reporting, using this method without setting a SourceUnit will cause NullPinterExceptions
 - 
setClassgenCallbackpublic void setClassgenCallback(CompilationUnit.ClassgenCallback visitor) Sets a ClassgenCallback. You can have only one, and setting it to null removes any existing setting.
 - 
getClassgenCallbackpublic CompilationUnit.ClassgenCallback getClassgenCallback() 
 - 
setProgressCallbackpublic void setProgressCallback(CompilationUnit.ProgressCallback callback) Sets a ProgressCallback. You can have only one, and setting it to null removes any existing setting.
 - 
getProgressCallbackpublic CompilationUnit.ProgressCallback getProgressCallback() 
 - 
compilepublic void compile() throws CompilationFailedExceptionSynonym for compile(Phases.ALL).- Throws:
- CompilationFailedException
 
 - 
compilepublic void compile(int throughPhase) throws CompilationFailedExceptionCompiles the compilation unit from sources.- Throws:
- CompilationFailedException
 
 - 
dequeuedprotected boolean dequeued() throws CompilationFailedExceptionDequeues any source units add through addSource and resets the compiler phase to initialization.Note: this does not mean a file is recompiled. If a SourceUnit has already passed a phase it is skipped until a higher phase is reached. - Returns:
- true if there was a queued source
- Throws:
- CompilationFailedException
 
 - 
createClassVisitorprotected org.objectweb.asm.ClassVisitor createClassVisitor() 
 - 
markprotected void mark() throws CompilationFailedExceptionUpdates the phase marker on all sources.- Throws:
- CompilationFailedException
 
 - 
applyToSourceUnitspublic void applyToSourceUnits(CompilationUnit.SourceUnitOperation body) throws CompilationFailedException A loop driver for applying operations to all SourceUnits. Automatically skips units that have already been processed through the current phase.- Throws:
- CompilationFailedException
 
 - 
applyToPrimaryClassNodespublic void applyToPrimaryClassNodes(CompilationUnit.PrimaryClassNodeOperation body) throws CompilationFailedException A loop driver for applying operations to all primary ClassNodes in our AST. Automatically skips units that have already been processed through the current phase.- Throws:
- CompilationFailedException
 
 - 
applyToGeneratedGroovyClassespublic void applyToGeneratedGroovyClasses(CompilationUnit.GroovyClassOperation body) throws CompilationFailedException - Throws:
- CompilationFailedException
 
 - 
getClassNodeResolverpublic ClassNodeResolver getClassNodeResolver() 
 - 
setClassNodeResolverpublic void setClassNodeResolver(ClassNodeResolver classNodeResolver) 
 
- 
 
-