Package org.codehaus.groovy.classgen.asm.sc

# Class StaticTypesCallSiteWriter

java.lang.Object
org.codehaus.groovy.classgen.asm.CallSiteWriter
org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter

All Implemented Interfaces:
  `org.objectweb.asm.Opcodes`

public class StaticTypesCallSiteWriter extends CallSiteWriter implements org.objectweb.asm.Opcodes
A call site writer which replaces call site caching with static calls. This means that the generated code looks more like Java code than dynamic Groovy code. Best effort is made to use JVM instructions instead of calls to helper methods.

Author:
  Cedric Champeau

## Field Summary

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

`CONSTRUCTOR`

### Fields inherited from interface org.objectweb.asm.Opcodes

`AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V9`

## Constructor Summary

Constructors
Constructor
Description
`StaticTypesCallSiteWriter(StaticTypesWriterController controller)`

## Method Summary

Modifier and Type
Method
Description
`void`
`fallbackAttributeOrPropertySite(PropertyExpression expression, Expression objectExpression, String name, MethodCallerMultiAdapter adapter)`
`void`
`generateCallSiteArray()`
`void`
`makeCallSite(Expression receiver, String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic)`
`void`
`makeCallSiteArrayInitializer()`
`void`
`makeGetPropertySite(Expression receiver, String methodName, boolean safe, boolean implicitThis)`
`void`
`makeGroovyObjectGetPropertySite(Expression receiver, String methodName, boolean safe, boolean implicitThis)`
`void`
`makeSingleArgumentCall(Expression receiver, String message, Expression arguments)`
`void`
`makeSiteEntry()`
`void`
`prepareCallSite(String message)`

### Methods inherited from class org.codehaus.groovy.classgen.asm.CallSiteWriter

`getCallSites, hasCallSiteUse, prepareSiteAndReceiver, visitBoxedArgument`

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

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

## Constructor Details

### StaticTypesCallSiteWriter

public StaticTypesCallSiteWriter(StaticTypesWriterController controller)

## Method Details

### generateCallSiteArray

public void generateCallSiteArray()

Overrides:
  `generateCallSiteArray` in class `CallSiteWriter`

### makeCallSite

public void makeCallSite(Expression receiver, String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic)

Overrides:
  `makeCallSite` in class `CallSiteWriter`

### makeGetPropertySite

public void makeGetPropertySite(Expression receiver, String methodName, boolean safe, boolean implicitThis)

Overrides:
  `makeGetPropertySite` in class `CallSiteWriter`

### makeGroovyObjectGetPropertySite

public void makeGroovyObjectGetPropertySite(Expression receiver, String methodName, boolean safe, boolean implicitThis)

Overrides:
  `makeGroovyObjectGetPropertySite` in class `CallSiteWriter`

### makeCallSiteArrayInitializer

public void makeCallSiteArrayInitializer()

Overrides:
  `makeCallSiteArrayInitializer` in class `CallSiteWriter`

### makeSiteEntry

public void makeSiteEntry()

Overrides:
  `makeSiteEntry` in class `CallSiteWriter`

### prepareCallSite

public void prepareCallSite(String message)

Overrides:
  `prepareCallSite` in class `CallSiteWriter`

### makeSingleArgumentCall

public void makeSingleArgumentCall(Expression receiver, String message, Expression arguments)

Overrides:
  `makeSingleArgumentCall` in class `CallSiteWriter`

### fallbackAttributeOrPropertySite

public void fallbackAttributeOrPropertySite(PropertyExpression expression, Expression objectExpression, String name, MethodCallerMultiAdapter adapter)

Overrides:
  `fallbackAttributeOrPropertySite` in class `CallSiteWriter`