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.

Author:
  Cedric Champeau

### Field Summary

Fields
`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
`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`