1 11 package org.eclipse.jdt.internal.debug.eval.ast.instructions; 12 13 import org.eclipse.jdt.debug.core.IJavaPrimitiveValue; 14 import org.eclipse.jdt.debug.core.IJavaValue; 15 16 public class LeftShiftOperator extends BinaryOperator { 17 public LeftShiftOperator(int resultId, int leftTypeId, int rightTypeId, int start) { 18 this(resultId, leftTypeId, rightTypeId, false, start); 19 } 20 21 protected LeftShiftOperator(int resultId, int leftTypeId, int rightTypeId, boolean isAssignmentOperator, int start) { 22 super(resultId, leftTypeId, rightTypeId, isAssignmentOperator, start); 23 } 24 25 28 protected boolean getBooleanResult(IJavaValue leftOperand, IJavaValue rightOperand) { 29 return false; 30 } 31 32 35 protected double getDoubleResult(IJavaValue leftOperand, IJavaValue rightOperand) { 36 return 0; 37 } 38 39 42 protected float getFloatResult(IJavaValue leftOperand, IJavaValue rightOperand) { 43 return 0; 44 } 45 46 49 protected int getIntResult(IJavaValue leftOperand, IJavaValue rightOperand) { 50 switch (fRightTypeId) { 52 case T_long : 53 return ((IJavaPrimitiveValue) leftOperand).getIntValue() << ((IJavaPrimitiveValue) rightOperand).getLongValue(); 54 case T_int : 55 case T_short : 56 case T_byte : 57 case T_char : 58 return ((IJavaPrimitiveValue) leftOperand).getIntValue() << ((IJavaPrimitiveValue) rightOperand).getIntValue(); 59 default : 60 return 0; 61 } 62 } 63 64 67 protected long getLongResult(IJavaValue leftOperand, IJavaValue rightOperand) { 68 switch (fRightTypeId) { 70 case T_long : 71 return ((IJavaPrimitiveValue) leftOperand).getLongValue() << ((IJavaPrimitiveValue) rightOperand).getLongValue(); 72 case T_int : 73 case T_short : 74 case T_byte : 75 case T_char : 76 return ((IJavaPrimitiveValue) leftOperand).getLongValue() << ((IJavaPrimitiveValue) rightOperand).getIntValue(); 77 default : 78 return 0; 79 } 80 } 81 82 85 protected String getStringResult(IJavaValue leftOperand, IJavaValue rightOperand) { 86 return null; 87 } 88 89 protected int getInternResultType() { 90 return getUnaryPromotionType(fLeftTypeId); 92 } 93 94 public String toString() { 95 return InstructionsEvaluationMessages.LeftShiftOperator_______operator_1; 96 } 97 98 } 99 | Popular Tags |