org.codehaus.groovy.classgen.asm

## Class BinaryExpressionMultiTypeDispatcher

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

Direct Known Subclasses:
  StaticTypesBinaryExpressionMultiTypeDispatcher

    public class BinaryExpressionMultiTypeDispatcher
    extends BinaryExpressionHelper

This class is for internal use only! This class will dispatch to the right type adapters according to the kind of binary expression that is provided.

### Field Summary

Fields
`protected BinaryExpressionWriter[]` `binExpWriter`
`static java.util.Map<ClassNode,java.lang.Integer>` `typeMap`
`static java.lang.String[]` `typeMapKeyNames`

### Constructor Summary

Constructors
Constructor and Description
`BinaryExpressionMultiTypeDispatcher(WriterController wc)`

### Method Summary

Methods
`protected void` `assignToArray(Expression orig, Expression receiver, Expression index, Expression rhsValueLoader)`
`protected boolean` `doPrimtiveCompare(ClassNode leftType, ClassNode rightType, BinaryExpression binExp)`
`protected void` `evaluateBinaryExpression(java.lang.String message, BinaryExpression binExp)`
`protected void` `evaluateBinaryExpressionWithAssignment(java.lang.String method, BinaryExpression binExp)`
`protected void` `evaluateCompareExpression(MethodCaller compareMethod, BinaryExpression binExp)`
`protected int` `getOperandType(ClassNode type)`
`protected BinaryExpressionWriter[]` `initializeDelegateHelpers()`
`protected void` `writePostOrPrefixMethod(int op, java.lang.String method, Expression expression, Expression orig)`

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

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

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

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

### Field Detail

#### binExpWriter

    protected BinaryExpressionWriter[] binExpWriter

#### typeMap

    public static java.util.Map<ClassNode,java.lang.Integer> typeMap

#### typeMapKeyNames

    public static final java.lang.String[] typeMapKeyNames

### Constructor Detail

#### BinaryExpressionMultiTypeDispatcher

    public BinaryExpressionMultiTypeDispatcher(WriterController wc)

### Method Detail

#### initializeDelegateHelpers

    protected BinaryExpressionWriter[] initializeDelegateHelpers()

#### getOperandType

    protected int getOperandType(ClassNode type)

#### doPrimtiveCompare

    protected boolean doPrimtiveCompare(ClassNode leftType,
                            ClassNode rightType,
                            BinaryExpression binExp)

#### evaluateCompareExpression

    protected void evaluateCompareExpression(MethodCaller compareMethod,
                                 BinaryExpression binExp)

Overrides:
  `evaluateCompareExpression` in class `BinaryExpressionHelper`

#### evaluateBinaryExpression

    protected void evaluateBinaryExpression(java.lang.String message,
                                BinaryExpression binExp)

Overrides:
  `evaluateBinaryExpression` in class `BinaryExpressionHelper`

#### evaluateBinaryExpressionWithAssignment

    protected void evaluateBinaryExpressionWithAssignment(java.lang.String method,
                                              BinaryExpression binExp)

Overrides:
  `evaluateBinaryExpressionWithAssignment` in class `BinaryExpressionHelper`

#### assignToArray

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

Overrides:
  `assignToArray` in class `BinaryExpressionHelper`

#### writePostOrPrefixMethod

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

Overrides:
  `writePostOrPrefixMethod` in class `BinaryExpressionHelper`