org.codehaus.groovy.classgen.asm.sc

## Class StaticTypesWriterController

- java.lang.Object
- - org.codehaus.groovy.classgen.asm.WriterController
  - - org.codehaus.groovy.classgen.asm.DelegatingController
    - - org.codehaus.groovy.classgen.asm.sc.StaticTypesWriterController

-     public class StaticTypesWriterController
      extends DelegatingController

  An alternative `WriterController` which handles static types and method dispatch. In case of a "mixed mode" where only some methods are annotated with `TypeChecked` then this writer will delegate to the classic writer controller.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `isInStaticallyCheckedMethod`

    - ### Fields inherited from class org.codehaus.groovy.classgen.asm.WriterController

      `optimizeForInt`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StaticTypesWriterController(WriterController normalController)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `BinaryExpressionHelper` | `getBinaryExpressionHelper()`
    `CallSiteWriter` | `getCallSiteWriter()`
    `ClosureWriter` | `getClosureWriter()`
    `InvocationWriter` | `getInvocationWriter()`
    `CallSiteWriter` | `getRegularCallSiteWriter()`
    `InvocationWriter` | `getRegularInvocationWriter()`
    `StatementWriter` | `getStatementWriter()`
    `TypeChooser` | `getTypeChooser()`
    `UnaryExpressionHelper` | `getUnaryExpressionHelper()`
    `void` | `init(AsmClassGenerator asmClassGenerator, GeneratorContext gcon, org.objectweb.asm.ClassVisitor cv, ClassNode cn)`
    `boolean` | `isFastPath()`
    `void` | `setConstructorNode(ConstructorNode cn)`
    `void` | `setMethodNode(MethodNode mn)`

    - ### Methods inherited from class org.codehaus.groovy.classgen.asm.DelegatingController

      `getAcg, getAssertionWriter, getBytecodeVersion, getClassName, getClassNode, getClassVisitor, getCompileStack, getConstructorNode, getContext, getCv, getInterfaceClassLoadingClass, getInternalBaseClassName, getInternalClassName, getLineNumber, getMethodNode, getMethodVisitor, getOperandStack, getOutermostClass, getReturnType, getSourceUnit, isConstructor, isInClosure, isInClosureConstructor, isInScriptBody, isNotClinit, isNotExplicitThisInClosure, isStaticConstructor, isStaticContext, isStaticMethod, resetLineNumber, setInterfaceClassLoadingClass, setLineNumber, setMethodVisitor, shouldOptimizeForInt, switchToFastPath, switchToSlowPath`

    - ### Methods inherited from class org.codehaus.groovy.classgen.asm.WriterController

      `getNextHelperMethodIndex, getSuperMethodNames`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### isInStaticallyCheckedMethod

          protected boolean isInStaticallyCheckedMethod

  - ### Constructor Detail

    - #### StaticTypesWriterController

          public StaticTypesWriterController(WriterController normalController)

  - ### Method Detail

    - #### init

          public void init(AsmClassGenerator asmClassGenerator,
                           GeneratorContext gcon,
                           org.objectweb.asm.ClassVisitor cv,
                           ClassNode cn)

      Overrides:
        `init` in class `DelegatingController`

    - #### setMethodNode

          public void setMethodNode(MethodNode mn)

      Overrides:
        `setMethodNode` in class `DelegatingController`

    - #### setConstructorNode

          public void setConstructorNode(ConstructorNode cn)

      Overrides:
        `setConstructorNode` in class `DelegatingController`

    - #### isFastPath

          public boolean isFastPath()

      Overrides:
        `isFastPath` in class `DelegatingController`

    - #### getCallSiteWriter

          public CallSiteWriter getCallSiteWriter()

      Overrides:
        `getCallSiteWriter` in class `DelegatingController`

    - #### getRegularCallSiteWriter

          public CallSiteWriter getRegularCallSiteWriter()

    - #### getStatementWriter

          public StatementWriter getStatementWriter()

      Overrides:
        `getStatementWriter` in class `DelegatingController`

    - #### getTypeChooser

          public TypeChooser getTypeChooser()

      Overrides:
        `getTypeChooser` in class `DelegatingController`

    - #### getInvocationWriter

          public InvocationWriter getInvocationWriter()

      Overrides:
        `getInvocationWriter` in class `DelegatingController`

    - #### getRegularInvocationWriter

          public InvocationWriter getRegularInvocationWriter()

    - #### getBinaryExpressionHelper

          public BinaryExpressionHelper getBinaryExpressionHelper()

      Overrides:
        `getBinaryExpressionHelper` in class `DelegatingController`

    - #### getUnaryExpressionHelper

          public UnaryExpressionHelper getUnaryExpressionHelper()

      Overrides:
        `getUnaryExpressionHelper` in class `DelegatingController`

    - #### getClosureWriter

          public ClosureWriter getClosureWriter()

      Overrides:
        `getClosureWriter` in class `DelegatingController`