org.codehaus.groovy.classgen.asm.sc

## Class StaticTypesBinaryExpressionMultiTypeDispatcher

- java.lang.Object
- - org.codehaus.groovy.classgen.asm.BinaryExpressionHelper
  - - org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher
    - - org.codehaus.groovy.classgen.asm.sc.StaticTypesBinaryExpressionMultiTypeDispatcher

All Implemented Interfaces:
  org.objectweb.asm.Opcodes

    public class StaticTypesBinaryExpressionMultiTypeDispatcher
    extends BinaryExpressionMultiTypeDispatcher
    implements org.objectweb.asm.Opcodes

A specialized version of the multi type binary expression dispatcher which is aware of static compilation. It is able to generate optimized bytecode for some operations using JVM instructions when available.

Author:
  Cedric Champeau, Jochen Theodorou

### Field Summary

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

`binExpWriter, typeMap, typeMapKeyNames`

### 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_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, ASM4, ASM5, ASM6, ASM7, 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, V9`

### Constructor Summary

Constructors
Constructor and Description
`StaticTypesBinaryExpressionMultiTypeDispatcher(WriterController wc)`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `assignToArray(Expression parent, Expression receiver, Expression index, Expression rhsValueLoader)`
`void` `evaluateEqual(BinaryExpression expression, boolean defineVariable)`
`protected void` `writePostOrPrefixMethod(int op, java.lang.String method, Expression expression, Expression orig)`

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

`doPrimitiveCompare, doPrimtiveCompare, evaluateBinaryExpression, evaluateBinaryExpressionWithAssignment, evaluateCompareExpression, getOperandType, initializeDelegateHelpers`

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

`eval, evaluateArrayAssignmentWithOperator, evaluatePostfixMethod, evaluatePrefixMethod, evaluateTernary, getController, getIsCaseMethod`

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

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

### Constructor Detail

#### StaticTypesBinaryExpressionMultiTypeDispatcher

    public StaticTypesBinaryExpressionMultiTypeDispatcher(WriterController wc)

### Method Detail

#### writePostOrPrefixMethod

    protected void writePostOrPrefixMethod(int op,
                                           java.lang.String method,
                                           Expression expression,
                                           Expression orig)

Overrides:
  `writePostOrPrefixMethod` in class `BinaryExpressionMultiTypeDispatcher`

#### evaluateEqual

    public void evaluateEqual(BinaryExpression expression,
                              boolean defineVariable)

Overrides:
  `evaluateEqual` in class `BinaryExpressionHelper`

#### assignToArray

    protected void assignToArray(Expression parent,
                                 Expression receiver,
                                 Expression index,
                                 Expression rhsValueLoader)

Overrides:
  `assignToArray` in class `BinaryExpressionMultiTypeDispatcher`