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 (org.codehaus.groovy.control.SourceUnit unit, StaticTypeCheckingVisitor visitor)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `ClassNode` | `getClassNode()`
    `` | `protected org.codehaus.groovy.control.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` | `transform, visitAnnotations, visitAssertStatement, visitCaseStatement, visitConstructorOrMethod, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitProperty, visitReturnStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitWhileLoop`
    `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`
    `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`
    `class Object` | `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(org.codehaus.groovy.control.SourceUnit unit, StaticTypeCheckingVisitor visitor)

  - ### Method Detail

    - #### public ClassNode getClassNode()

    - #### @Override protected org.codehaus.groovy.control.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)