KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > jdt > internal > debug > eval > ast > instructions > EqualEqualOperator


1 /*******************************************************************************
2  * Copyright (c) 2000, 2007 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

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     /*
27      * @see BinaryOperator#getBooleanResult(IJavaValue, IJavaValue)
28      */

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                     // enumerations in switch statement
44
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     /*
60      * @see BinaryOperator#getDoubleResult(IJavaValue, IJavaValue)
61      */

62     protected double getDoubleResult(IJavaValue leftOperand, IJavaValue rightOperand) {
63         return 0;
64     }
65
66     /*
67      * @see BinaryOperator#getFloatResult(IJavaValue, IJavaValue)
68      */

69     protected float getFloatResult(IJavaValue leftOperand, IJavaValue rightOperand) {
70         return 0;
71     }
72
73     /*
74      * @see BinaryOperator#getIntResult(IJavaValue, IJavaValue)
75      */

76     protected int getIntResult(IJavaValue leftOperand, IJavaValue rightOperand) {
77         return 0;
78     }
79
80     /*
81      * @see BinaryOperator#getLongResult(IJavaValue, IJavaValue)
82      */

83     protected long getLongResult(IJavaValue leftOperand, IJavaValue rightOperand) {
84         return 0;
85     }
86
87     /*
88      * @see BinaryOperator#getStringResult(IJavaValue, IJavaValue)
89      */

90     protected String JavaDoc getStringResult(IJavaValue leftOperand, IJavaValue rightOperand) {
91         return null;
92     }
93
94     public String JavaDoc toString() {
95         return InstructionsEvaluationMessages.EqualEqualOperator_operator_1;
96     }
97
98 }
99
Popular Tags