public abstract class AbstractClassNodeTransformer extends AbstractTransformer
Transformer can be used to transform ClassNode
nodes. To locate the classes you want to transform, a criteria in
form of Closure can be passed in the constructor.
The criteria must be a Closure receiving as unique parameter
a ClassNode and returning a Boolean value. If the closure
returns true, then the transformation will be applied.
There are some static methods creating some default criterias:
| Constructor and Description |
|---|
AbstractClassNodeTransformer(SourceUnit sourceUnit,
Closure<java.lang.Boolean> criteria)
Every instance needs the source unit and the name of the class
it's going to transform.
|
| Modifier and Type | Method and Description |
|---|---|
abstract void |
transformClass(ClassNode classNode)
Within this method developer could modify the
ClassNode
instance. |
void |
visitClass(ClassNode classNode)
This function has to be implemented in order the transformation
to traverse every
ClassNode in the AST |
getModule, getModulePackageName, getSourceUnittransform, visitAnnotations, visitAssertStatement, visitCaseStatement, visitConstructorOrMethod, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitProperty, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoopaddError, visitBlockStatement, visitBreakStatement, visitCatchStatement, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitStatement, visitTryCatchFinallyvisitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpressionpublic AbstractClassNodeTransformer(SourceUnit sourceUnit, Closure<java.lang.Boolean> criteria)
Transformer
a Closure returning a boolean is used as a criteria.
You can create your own criteria or use one of the static
methods present in this class. These methods will create a
pre-defined criteria.
The Closure used as a criteria will receive a ClassNode and return a Boolean value. If the closure
returns true then the transformation will be apply, if not the
ClassNode will be discarded.sourceUnit - Needed to apply scopecriteria - used to locate target classes
look for the qualified class)Criterias.byClassNodeNameContains(String)public void visitClass(ClassNode classNode)
ClassNode in the ASTvisitClass in interface TransformervisitClass in interface GroovyClassVisitorvisitClass in class ClassCodeVisitorSupportclassNode - The next ClassNode to traverse