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.
Modifiers | Name | Description |
---|---|---|
interface |
CompilationUnit.ClassgenCallback |
A callback interface you can use during the classgen
phase of compilation as the compiler traverses the ClassNode tree.
|
static class |
CompilationUnit.GroovyClassOperation |
|
interface |
CompilationUnit.IGroovyClassOperation |
|
interface |
CompilationUnit.IPrimaryClassNodeOperation |
|
interface |
CompilationUnit.ISourceUnitOperation |
|
static class |
CompilationUnit.PrimaryClassNodeOperation |
|
interface |
CompilationUnit.ProgressCallback |
A callback interface you can use to get a callback after every unit of the compile process. |
static class |
CompilationUnit.SourceUnitOperation |
Constructor and 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, CodeSource codeSource, GroovyClassLoader loader) Initializes the CompilationUnit with a CodeSource for controlling security stuff and a class loader for loading classes. |
CompilationUnit(CompilerConfiguration configuration, CodeSource codeSource, 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. |
Type Params | Return Type | Name and description |
---|---|---|
|
public void |
addClassNode(ClassNode node) Adds a ClassNode directly to the unit (ie. without source). |
|
public void |
addFirstPhaseOperation(IPrimaryClassNodeOperation op, int phase) |
|
public void |
addFirstPhaseOperation(CompilationUnit.PrimaryClassNodeOperation op, int phase) |
|
public void |
addJavaCompilationUnits(Set<JavaFileObject> javaCompilationUnitSet) |
|
public void |
addNewPhaseOperation(ISourceUnitOperation op, int phase) |
|
public void |
addNewPhaseOperation(CompilationUnit.SourceUnitOperation op, int phase) |
|
public void |
addPhaseOperation(IGroovyClassOperation op) |
|
public void |
addPhaseOperation(ISourceUnitOperation op, int phase) |
|
public void |
addPhaseOperation(IPrimaryClassNodeOperation op, int phase) |
|
public void |
addPhaseOperation(CompilationUnit.GroovyClassOperation op) |
|
public void |
addPhaseOperation(CompilationUnit.SourceUnitOperation op, int phase) |
|
public void |
addPhaseOperation(CompilationUnit.PrimaryClassNodeOperation op, int phase) |
|
public SourceUnit |
addSource(File file) Adds a source file to the unit. |
|
public SourceUnit |
addSource(URL url) Adds a source file to the unit. |
|
public SourceUnit |
addSource(String name, InputStream stream) Adds a InputStream source to the unit. |
|
public SourceUnit |
addSource(String name, String scriptText) |
|
public SourceUnit |
addSource(SourceUnit source) Adds a SourceUnit to the unit. |
|
public void |
addSources(String[] paths) Adds a set of file paths to the unit. |
|
public void |
addSources(File[] files) Adds a set of source files to the unit. |
|
public void |
applyToPrimaryClassNodes(CompilationUnit.PrimaryClassNodeOperation op) |
|
public void |
applyToSourceUnits(CompilationUnit.SourceUnitOperation op) |
|
public void |
call(SourceUnit source, GeneratorContext context, ClassNode classNode) |
|
public void |
compile() Synonym for compile(Phases.ALL) . |
|
public void |
compile(int throughPhase) Compiles the compilation unit from sources. |
|
public void |
configure(CompilerConfiguration configuration) Configures its debugging mode and classloader classpath from a given compiler configuration. |
|
public CompileUnit |
getAST() Returns the CompileUnit that roots our AST. |
|
public ASTTransformationsContext |
getASTTransformationsContext()
|
|
public ClassNode |
getClassNode(String name) Convenience routine to get the named ClassNode. |
|
public ClassNodeResolver |
getClassNodeResolver() |
|
public List<GroovyClass> |
getClasses() Get the GroovyClasses generated by compile(). |
|
public CompilationUnit.ClassgenCallback |
getClassgenCallback() |
|
public ClassNode |
getFirstClassNode() Convenience routine to get the first ClassNode, for when you are sure there is only one. |
|
public Set<JavaFileObject> |
getJavaCompilationUnitSet() |
|
public CompilationUnit.ProgressCallback |
getProgressCallback() |
|
public GroovyClassLoader |
getTransformLoader() Returns the class loader for loading AST transformations. |
|
public boolean |
hasNext() |
|
public Iterator<SourceUnit> |
iterator() Returns an iterator on the unit's SourceUnits. |
|
public boolean |
needSortedInput() |
|
public SourceUnit |
next() |
|
public void |
remove() |
|
public void |
setClassNodeResolver(ClassNodeResolver classNodeResolver) |
|
public void |
setClassgenCallback(CompilationUnit.ClassgenCallback visitor) Sets a ClassgenCallback. |
|
public void |
setProgressCallback(CompilationUnit.ProgressCallback callback) Sets a ProgressCallback. |
|
public Expression |
transform(Expression expression) |
Methods inherited from class | Name |
---|---|
class ProcessingUnit |
completePhase, configure, getClassLoader, getConfiguration, getErrorCollector, getPhase, getPhaseDescription, gotoPhase, isPhaseComplete, nextPhase, setClassLoader, setConfiguration |
Initializes the CompilationUnit with defaults.
Initializes the CompilationUnit with defaults except for class loader.
Initializes the CompilationUnit with no security considerations.
Initializes the CompilationUnit with a CodeSource for controlling security stuff and a class loader for loading classes.
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 classLoader must be at last a parent to transformLoader
.
The other loader has no such constraint.
transformLoader
- - the loader for transformsloader
- - loader used to resolve classes against during compilationcodeSource
- - security setting for the compilationconfiguration
- - compilation configurationAdds 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
Adds a source file to the unit.
Adds a source file to the unit.
Adds a InputStream source to the unit.
Adds a SourceUnit to the unit.
Adds a set of file paths to the unit.
Adds a set of source files to the unit.
Synonym for compile(Phases.ALL)
.
Compiles the compilation unit from sources.
Configures its debugging mode and classloader classpath from a given compiler configuration. This cannot be done more than once due to limitations in URLClassLoader.
Returns the CompileUnit that roots our AST.
Get the GroovyClasses generated by compile().
Convenience routine to get the first ClassNode, for when you are sure there is only one.
Returns the class loader for loading AST transformations.
Returns an iterator on the unit's SourceUnits.
Sets a ClassgenCallback. You can have only one, and setting
it to null
removes any existing setting.
Sets a ProgressCallback. You can have only one, and setting
it to null
removes any existing setting.
Copyright © 2003-2022 The Apache Software Foundation. All rights reserved.