[Java] Class StaticCompilationTransformer

  • org.codehaus.groovy.transform.sc.transformers.StaticCompilationTransformer
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
Modifiers Name Description
protected static ClassNode BYTECODE_ADAPTER_CLASS
protected static Map<Integer, MethodNode> BYTECODE_BINARY_ADAPTERS

Constructor Summary

Constructors
Constructor and description
StaticCompilationTransformer (SourceUnit unit, StaticTypeCheckingVisitor visitor)

Methods Summary

Methods
Type Params Return Type Name and description
public ClassNode getClassNode()
protected SourceUnit getSourceUnit()
public StaticTypesTypeChooser getTypeChooser()
public Expression transform(Expression expr)
public void visitClass(ClassNode node)
public void visitClassCodeContainer(Statement code)
protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)

Inherited Methods Summary

Inherited Methods
Methods inherited from class Name
class ClassCodeExpressionTransformer setSourcePosition, transform, visitAnnotation, visitAssertStatement, visitCaseStatement, visitConstructorOrMethod, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitProperty, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop
class ClassCodeVisitorSupport addError, getSourceUnit, visitAnnotation, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoop
class CodeVisitorSupport afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAssertStatement, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBlockStatement, visitBooleanExpression, visitBreakStatement, visitBytecodeExpression, visitCaseStatement, visitCastExpression, visitCatchStatement, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitEmptyStatement, visitExpressionStatement, visitFieldExpression, visitForLoop, visitGStringExpression, visitIfElse, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitSwitch, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop

Field Detail

protected static final ClassNode BYTECODE_ADAPTER_CLASS

protected static final Map<Integer, MethodNode> BYTECODE_BINARY_ADAPTERS

Constructor Detail

public StaticCompilationTransformer(SourceUnit unit, StaticTypeCheckingVisitor visitor)

Method Detail

public ClassNode getClassNode()

@Override protected SourceUnit getSourceUnit()

public StaticTypesTypeChooser getTypeChooser()

@Override public Expression transform(Expression expr)

@Override public void visitClass(ClassNode node)

@Override public void visitClassCodeContainer(Statement code)

@Override protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)