Package 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
Modifier and Type
Field
Description
`protected boolean`
`isInStaticallyCheckedMethod`

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

`optimizeForInt`

## Constructor Summary

Constructors
Constructor
Description
`StaticTypesWriterController(WriterController normalController)`

## Method Summary

Modifier and Type
Method
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 Details

### isInStaticallyCheckedMethod

protected boolean isInStaticallyCheckedMethod

## Constructor Details

### StaticTypesWriterController

public StaticTypesWriterController(WriterController normalController)

## Method Details

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