Groovy Documentation

org.codehaus.groovy.classgen.asm
[Java] Class BinaryExpressionMultiTypeDispatcher

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

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.

Authors:
Jochen "blackdrag" Theodorou
Roshan Dawrani


Field Summary
protected BinaryExpressionWriter[] binExpWriter

static java.util.Map typeMap

static java.lang.String[] typeMapKeyNames

 
Method Summary
java.lang.Object BinaryExpressionMultiTypeDispatcher(WriterController wc)

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 BinaryExpressionHelper
assignToArray, eval, evaluateBinaryExpression, evaluateBinaryExpressionWithAssignment, evaluateCompareExpression, evaluateEqual, evaluatePostfixMethod, evaluatePrefixMethod, evaluateTernary, getController, getIsCaseMethod, writePostOrPrefixMethod
 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

binExpWriter

protected BinaryExpressionWriter[] binExpWriter


typeMap

public static java.util.Map typeMap


typeMapKeyNames

public static final java.lang.String[] typeMapKeyNames


 
Method Detail

BinaryExpressionMultiTypeDispatcher

public java.lang.Object BinaryExpressionMultiTypeDispatcher(WriterController wc)


assignToArray

operandStack.doGroovyCast(arrayComponentType);
protected void assignToArray(Expression orig, Expression receiver, Expression index, Expression rhsValueLoader)


doPrimtiveCompare

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


evaluateBinaryExpression

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


evaluateBinaryExpressionWithAssignment

binExp.getLeftExpression().visit(getController().getAcg());
protected void evaluateBinaryExpressionWithAssignment(java.lang.String method, BinaryExpression binExp)


evaluateCompareExpression

@Override
protected void evaluateCompareExpression(MethodCaller compareMethod, BinaryExpression binExp)


getOperandType

protected int getOperandType(ClassNode type)


initializeDelegateHelpers

protected BinaryExpressionWriter[] initializeDelegateHelpers()


writePostOrPrefixMethod

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


 

Groovy Documentation