org.codehaus.groovy.classgen.asm
Class BinaryExpressionMultiTypeDispatcher

java.lang.Object
  extended by org.codehaus.groovy.classgen.asm.BinaryExpressionHelper
      extended by 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
protected  BinaryExpressionWriter[] binExpWriter
           
static java.util.Map<ClassNode,java.lang.Integer> typeMap
           
static java.lang.String[] typeMapKeyNames
           
 
Constructor Summary
BinaryExpressionMultiTypeDispatcher(WriterController wc)
           
 
Method Summary
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