Package asteroid.transformer
Class AbstractStatementTransformer<T extends Statement>
- java.lang.Object
-
- org.codehaus.groovy.ast.CodeVisitorSupport
-
- org.codehaus.groovy.ast.ClassCodeVisitorSupport
-
- org.codehaus.groovy.ast.ClassCodeExpressionTransformer
-
- asteroid.transformer.AbstractTransformer
-
- asteroid.transformer.AbstractStatementTransformer<T>
-
- Type Parameters:
T- use as a hint for thetransformStatement(T)method parameter
- All Implemented Interfaces:
Transformer,ExpressionTransformer,GroovyClassVisitor,GroovyCodeVisitor,ErrorCollecting
public abstract class AbstractStatementTransformer<T extends Statement> extends AbstractTransformer
ThisTransformercould be used as a base for transformingStatementinstances.
IMPORTANT: The parameter type is only used as a hint. If you are not carefull on how you define the search criteria you could get aClassCastExceptionat runtime. The criteria should ask for the type of the statement in the first place.- Since:
- 0.2.0
-
-
Constructor Summary
Constructors Constructor Description AbstractStatementTransformer(SourceUnit sourceUnit, Closure<Boolean> criteria)Every instance needs the source unit awareness and the name of the method it's going to transform
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidtransformStatement(T statement)This method will transform the statement into its final version.voidvisitStatement(Statement statement)-
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, visitMethod, visitObjectInitializerStatements, visitPackage, 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
-
AbstractStatementTransformer
public AbstractStatementTransformer(SourceUnit sourceUnit, Closure<Boolean> criteria)
Every instance needs the source unit awareness and the name of the method it's going to transform- Parameters:
sourceUnit- Needed to apply scopecriteria- the criteria used to search the interestingStatement- Since:
- 0.2.0
-
-
Method Detail
-
visitStatement
public void visitStatement(Statement statement)
- Overrides:
visitStatementin classClassCodeVisitorSupport
-
transformStatement
public abstract void transformStatement(T statement)
This method will transform the statement into its final version.- Parameters:
statement- the method statement you want to transform- Since:
- 0.2.0
-
-