StaticCompilationTransformer (groovy 2.4.3 API)
Date: 2015-03-23

Package: org.codehaus.groovy.transform.sc.transformers

## [Java] Class StaticCompilationTransformer

- org.codehaus.groovy.transform.sc.transformers.StaticCompilationTransformer

- 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

    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 | Name and description
    --- | ---
    `ClassNode` | `getClassNode()`
    `protected SourceUnit` | `getSourceUnit()`
    `StaticTypesTypeChooser` | `getTypeChooser()`
    `Expression` | `transform(Expression expr)`
    `void` | `visitClass(ClassNode node)`
    `void` | `visitClassCodeContainer(Statement code)`
    `protected void` | `visitConstructorOrMethod(MethodNode node, boolean isConstructor)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class ClassCodeExpressionTransformer` | `visitField, visitProperty, visitReturnStatement, visitIfElse, visitThrowStatement, visitSynchronizedStatement, visitForLoop, visitWhileLoop, visitDoWhileLoop, visitExpressionStatement, visitAssertStatement, visitSwitch, visitCaseStatement, visitAnnotations, transform, visitMethod, visitConstructor, visitDeclarationExpression, visitClass, visitBreakStatement, visitContinueStatement, visitCatchStatement, visitBlockStatement, visitTryCatchFinally, visitPackage, visitImports, visitClassExpression, visitPropertyExpression, visitConstantExpression, visitListExpression, visitMethodPointerExpression, visitVariableExpression, visitGStringExpression, visitArrayExpression, visitSpreadExpression, visitSpreadMapExpression, visitNotExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitCastExpression, visitArgumentlistExpression, visitClosureListExpression, visitBytecodeExpression, visitMethodCallExpression, visitStaticMethodCallExpression, visitConstructorCallExpression, visitTernaryExpression, visitFieldExpression, visitShortTernaryExpression, visitBinaryExpression, visitPrefixExpression, visitPostfixExpression, visitBooleanExpression, visitClosureExpression, visitTupleExpression, visitMapExpression, visitMapEntryExpression, visitRangeExpression, visitAttributeExpression, visitBitwiseNegationExpression, wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`
    `class ClassCodeVisitorSupport` | `visitMethod, visitField, visitProperty, visitConstructor, visitReturnStatement, visitDeclarationExpression, visitIfElse, visitClass, visitBreakStatement, visitContinueStatement, visitThrowStatement, visitSynchronizedStatement, visitCatchStatement, visitForLoop, visitBlockStatement, visitWhileLoop, visitDoWhileLoop, visitExpressionStatement, visitAssertStatement, visitTryCatchFinally, visitSwitch, visitCaseStatement, visitPackage, visitImports, visitAnnotations, visitClassExpression, visitPropertyExpression, visitConstantExpression, visitListExpression, visitMethodPointerExpression, visitVariableExpression, visitGStringExpression, visitArrayExpression, visitSpreadExpression, visitSpreadMapExpression, visitNotExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitCastExpression, visitArgumentlistExpression, visitClosureListExpression, visitBytecodeExpression, visitMethodCallExpression, visitStaticMethodCallExpression, visitConstructorCallExpression, visitTernaryExpression, visitFieldExpression, visitShortTernaryExpression, visitBinaryExpression, visitPrefixExpression, visitPostfixExpression, visitBooleanExpression, visitClosureExpression, visitTupleExpression, visitMapExpression, visitMapEntryExpression, visitRangeExpression, visitAttributeExpression, visitBitwiseNegationExpression, wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### 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)