1 46 package org.mr.api.jms.selector.syntax; 47 48 import javax.jms.Message ; 49 50 51 58 class BetweenExpression implements Expression { 59 60 61 64 private final Expression number1; 65 66 69 private final Expression number2; 70 71 74 private final Expression number3; 75 76 79 private static final String CONTEXT = "between expression"; 80 81 82 90 public BetweenExpression(final Expression num1, final Expression num2,final Expression num3) { 91 number1 = num1; 92 number2 = num2; 93 number3 = num3; 94 } 96 97 104 public final MantaObject evaluate(final Message msg) throws TypeMismatchException { 105 106 MantaBoolean result = null; 107 MantaNumber val1 = TypeCaster.castToNumber(number1.evaluate(msg), CONTEXT); 108 109 if (val1 != null) { 110 MantaNumber val2 = TypeCaster.castToNumber(number2.evaluate(msg), CONTEXT); 111 if (val2 != null) { 112 MantaNumber val3 = TypeCaster.castToNumber(number3.evaluate(msg), CONTEXT); 113 if (val3 != null) { 114 if (val1.greaterEqual(val2).value() && val1.lessEqual(val3).value()) { 115 result = MantaBoolean.TRUE; 116 } else { 118 result = MantaBoolean.FALSE; 119 } } } } return result; 124 } 126 127 132 public final String toString() { 133 134 StringBuffer result = new StringBuffer (); 135 result.append('('); 136 result.append(number1.toString()); 137 result.append(" between "); 138 result.append(number2.toString()); 139 result.append(" and "); 140 result.append(number3.toString()); 141 result.append(')'); 142 return result.toString(); 143 }} | Popular Tags |