1 11 package org.eclipse.jdt.internal.debug.eval.ast.instructions; 12 13 import org.eclipse.jdt.debug.core.IJavaObject; 14 import org.eclipse.jdt.debug.core.IJavaPrimitiveValue; 15 import org.eclipse.jdt.debug.core.IJavaValue; 16 17 public class EqualEqualOperator extends BinaryOperator { 18 19 private boolean fIsEquals; 20 21 public EqualEqualOperator(int leftTypeId, int rightTypeId, boolean isEquals, int start) { 22 super(T_boolean, leftTypeId, rightTypeId, false, start); 23 fIsEquals= isEquals; 24 } 25 26 29 protected boolean getBooleanResult(IJavaValue leftOperand, IJavaValue rightOperand) { 30 boolean equals= false; 31 switch (getInternResultType()) { 32 case T_double : 33 equals= ((IJavaPrimitiveValue) leftOperand).getDoubleValue() == ((IJavaPrimitiveValue) rightOperand).getDoubleValue(); 34 break; 35 case T_float : 36 equals= ((IJavaPrimitiveValue) leftOperand).getFloatValue() == ((IJavaPrimitiveValue) rightOperand).getFloatValue(); 37 break; 38 case T_long : 39 equals= ((IJavaPrimitiveValue) leftOperand).getLongValue() == ((IJavaPrimitiveValue) rightOperand).getLongValue(); 40 break; 41 case T_int : 42 if (leftOperand instanceof IJavaObject) { 43 equals = leftOperand.equals(rightOperand); 45 } else { 46 equals= ((IJavaPrimitiveValue) leftOperand).getIntValue() == ((IJavaPrimitiveValue) rightOperand).getIntValue(); 47 } 48 break; 49 case T_boolean : 50 equals= ((IJavaPrimitiveValue) leftOperand).getBooleanValue() == ((IJavaPrimitiveValue) rightOperand).getBooleanValue(); 51 break; 52 default : 53 equals= leftOperand.equals(rightOperand); 54 break; 55 } 56 return ((fIsEquals) ? equals : !equals); 57 } 58 59 62 protected double getDoubleResult(IJavaValue leftOperand, IJavaValue rightOperand) { 63 return 0; 64 } 65 66 69 protected float getFloatResult(IJavaValue leftOperand, IJavaValue rightOperand) { 70 return 0; 71 } 72 73 76 protected int getIntResult(IJavaValue leftOperand, IJavaValue rightOperand) { 77 return 0; 78 } 79 80 83 protected long getLongResult(IJavaValue leftOperand, IJavaValue rightOperand) { 84 return 0; 85 } 86 87 90 protected String getStringResult(IJavaValue leftOperand, IJavaValue rightOperand) { 91 return null; 92 } 93 94 public String toString() { 95 return InstructionsEvaluationMessages.EqualEqualOperator_operator_1; 96 } 97 98 } 99 | Popular Tags |