Class CompilationCustomizer
java.lang.Object
org.codehaus.groovy.control.customizers.CompilationCustomizer
- All Implemented Interfaces:
CompilationUnit.IPrimaryClassNodeOperation
- Direct Known Subclasses:
DelegatingCustomizer,ImportCustomizer,SecureASTCustomizer
public abstract class CompilationCustomizer
extends Object
implements CompilationUnit.IPrimaryClassNodeOperation
Users wanting to customize the configuration process such as adding imports, restricting the
language features or apply AST transformations by default should implement this class, then
call the
CompilerConfiguration.addCompilationCustomizers(CompilationCustomizer...)
method.
A customizer is registered for a particular compilation and is invoked for every primary class node of it. Two consequences are easy to overlook:
- The
SourceUnitpassed tocallmay benull, for class nodes supplied directly viaaddClassNoderather than parsed from source. Guard accordingly; an unguarded dereference surfaces as aGroovyBugErrorrather than as your own exception. - A customizer should not assume the class nodes it sees belong to the compilation it was registered for. A configuration may be copied for a nested compilation, which carries its customizers along unless the two-argument copy constructor is used to omit them.
- Since:
- 1.8.0
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a customizer bound to the supplied compile phase. -
Method Summary
Modifier and TypeMethodDescriptiongetPhase()Returns the compile phase in which this customizer runs.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.control.CompilationUnit.IPrimaryClassNodeOperation
call, doPhaseOperation, needSortedInput
-
Constructor Details
-
CompilationCustomizer
Creates a customizer bound to the supplied compile phase.- Parameters:
phase- the phase in which this customizer should run
-
-
Method Details
-
getPhase
Returns the compile phase in which this customizer runs.- Returns:
- the configured compile phase
-