Groovy Documentation

org.codehaus.groovy.transform.sc.transformers
[Java] 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

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.

Authors:
Cedric Champeau


Field Summary
protected static ClassNode BYTECODE_ADAPTER_CLASS

protected static java.util.Map BYTECODE_BINARY_ADAPTERS

 
Constructor Summary
StaticCompilationTransformer(SourceUnit unit)

 
Method Summary
ClassNode getClassNode()

protected SourceUnit getSourceUnit()

StaticTypesTypeChooser getTypeChooser()

Expression transform(Expression expr)

void visitClass(ClassNode node)

void visitClassCodeContainer(Statement code)

 
Methods inherited from class ClassCodeExpressionTransformer
transform, visitAnnotations, visitAssertStatement, visitCaseStatement, visitConstructorOrMethod, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitProperty, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop
 
Methods inherited from class ClassCodeVisitorSupport
addError, getSourceUnit, 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
 
Methods inherited from class CodeVisitorSupport
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, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitSwitch, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop
 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

BYTECODE_ADAPTER_CLASS

protected static final ClassNode BYTECODE_ADAPTER_CLASS


BYTECODE_BINARY_ADAPTERS

protected static final java.util.Map BYTECODE_BINARY_ADAPTERS


 
Constructor Detail

StaticCompilationTransformer

public StaticCompilationTransformer(SourceUnit unit)


 
Method Detail

getClassNode

public ClassNode getClassNode()


getSourceUnit

protected SourceUnit getSourceUnit() {
protected SourceUnit getSourceUnit()


getTypeChooser

public StaticTypesTypeChooser getTypeChooser()


transform

public Expression transform(Expression expr) {
public Expression transform(Expression expr)


visitClass

public void visitClass(final ClassNode node) {
public void visitClass(ClassNode node)


visitClassCodeContainer

public void visitClassCodeContainer(final Statement code) {
public void visitClassCodeContainer(Statement code)


 

Groovy Documentation