Package asteroid.transformer
Class AbstractMethodNodeTransformer
- java.lang.Object
-
- org.codehaus.groovy.ast.CodeVisitorSupport
-
- org.codehaus.groovy.ast.ClassCodeVisitorSupport
-
- org.codehaus.groovy.ast.ClassCodeExpressionTransformer
-
- asteroid.transformer.AbstractTransformer
-
- asteroid.transformer.AbstractMethodNodeTransformer
-
- All Implemented Interfaces:
Transformer,ExpressionTransformer,GroovyClassVisitor,GroovyCodeVisitor,ErrorCollecting
public abstract class AbstractMethodNodeTransformer extends AbstractTransformer
ThisTransformercan be used to transformMethodNodenodes. To locate the classes you want to transform, a criteria in form ofClosurecan be passed in the constructor. The criteria must be aClosurereceiving as unique parameter aMethodNodeand returning aBooleanvalue. If the closure returns true, then the transformation will be applied. There are some static methods creating some default criterias:- Since:
- 0.2.0
-
-
Constructor Summary
Constructors Constructor Description AbstractMethodNodeTransformer(SourceUnit sourceUnit, Closure<Boolean> criteria)Deprecated.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidtransformMethod(MethodNode methodNode)Within this method developer could modify theMethodNodeinstance.voidvisitMethod(MethodNode methodNode)-
Methods inherited from class asteroid.transformer.AbstractTransformer
getModule, getModulePackageName, getSourceUnit
-
Methods inherited from class org.codehaus.groovy.ast.ClassCodeExpressionTransformer
transform, visitAnnotations, visitAssertStatement, visitCaseStatement, visitConstructorOrMethod, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitProperty, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop
-
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitBlockStatement, visitBreakStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitImports, visitObjectInitializerStatements, visitPackage, visitStatement, visitTryCatchFinally
-
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArgumentlistExpression, 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, visitVariableExpression
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface asteroid.transformer.Transformer
visitClass
-
-
-
-
Constructor Detail
-
AbstractMethodNodeTransformer
public AbstractMethodNodeTransformer(SourceUnit sourceUnit, Closure<Boolean> criteria)
Deprecated.Every instance needs the source unit and the name of the class it's going to transform. To find methods eligible to be transformed by thisTransformeraClosurereturning 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. TheClosureused as a criteria will receive aMethodNodeand return aBooleanvalue. If the closure returns true then the transformation will be apply, if not theMethodNodewill be discarded.- Parameters:
sourceUnit- Needed to apply scopecriteria- used to locate target classes look for the qualified method)- Since:
- 0.2.0
- See Also:
Criterias.byMethodNodeNameContains(String)
-
-
Method Detail
-
visitMethod
public void visitMethod(MethodNode methodNode)
- Specified by:
visitMethodin interfaceGroovyClassVisitor- Overrides:
visitMethodin classClassCodeVisitorSupport
-
transformMethod
public abstract void transformMethod(MethodNode methodNode)
Within this method developer could modify theMethodNodeinstance.- Parameters:
methodNode- theMethodNodeyou want to transform- Since:
- 0.2.0
-
-