Class StaticCompilationTransformer
- java.lang.Object
-
- org.codehaus.groovy.ast.CodeVisitorSupport
-
- org.codehaus.groovy.ast.ClassCodeVisitorSupport
-
- org.codehaus.groovy.ast.ClassCodeExpressionTransformer
-
- org.codehaus.groovy.transform.sc.transformers.StaticCompilationTransformer
-
- All Implemented Interfaces:
ExpressionTransformer,GroovyClassVisitor,GroovyCodeVisitor,ErrorCollecting
public class StaticCompilationTransformer extends ClassCodeExpressionTransformer
Some expressions use symbols as aliases to method calls (<<, +=, ...). In static compilation, if such a method call is found, we transform the original binary expression into a method call expression so that the call gets statically compiled.
-
-
Field Summary
Fields Modifier and Type Field Description protected static ClassNodeBYTECODE_ADAPTER_CLASSprotected static java.util.Map<java.lang.Integer,MethodNode>BYTECODE_BINARY_ADAPTERS
-
Constructor Summary
Constructors Constructor Description StaticCompilationTransformer(SourceUnit unit, StaticTypeCheckingVisitor visitor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ClassNodegetClassNode()protected SourceUnitgetSourceUnit()StaticTypesTypeChoosergetTypeChooser()Expressiontransform(Expression expr)Transforms the given expression into another expressionvoidvisitClass(ClassNode node)Visit a ClassNode.voidvisitClassCodeContainer(Statement code)protected voidvisitConstructorOrMethod(MethodNode node, boolean isConstructor)-
Methods inherited from class org.codehaus.groovy.ast.ClassCodeExpressionTransformer
visitAnnotations, visitAssertStatement, visitCaseStatement, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitProperty, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop
-
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitBlockStatement, visitBreakStatement, visitCatchStatement, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitImports, visitMethod, 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
-
-
-
-
Field Detail
-
BYTECODE_ADAPTER_CLASS
protected static final ClassNode BYTECODE_ADAPTER_CLASS
-
BYTECODE_BINARY_ADAPTERS
protected static final java.util.Map<java.lang.Integer,MethodNode> BYTECODE_BINARY_ADAPTERS
-
-
Constructor Detail
-
StaticCompilationTransformer
public StaticCompilationTransformer(SourceUnit unit, StaticTypeCheckingVisitor visitor)
-
-
Method Detail
-
getSourceUnit
protected SourceUnit getSourceUnit()
- Specified by:
getSourceUnitin classClassCodeVisitorSupport
-
getTypeChooser
public StaticTypesTypeChooser getTypeChooser()
-
getClassNode
public ClassNode getClassNode()
-
visitClassCodeContainer
public void visitClassCodeContainer(Statement code)
- Overrides:
visitClassCodeContainerin classClassCodeVisitorSupport
-
transform
public Expression transform(Expression expr)
Description copied from interface:ExpressionTransformerTransforms the given expression into another expression- Specified by:
transformin interfaceExpressionTransformer- Overrides:
transformin classClassCodeExpressionTransformer
-
visitClass
public void visitClass(ClassNode node)
Description copied from interface:GroovyClassVisitorVisit a ClassNode.- Specified by:
visitClassin interfaceGroovyClassVisitor- Overrides:
visitClassin classClassCodeVisitorSupport
-
visitConstructorOrMethod
protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
- Overrides:
visitConstructorOrMethodin classClassCodeExpressionTransformer
-
-