1 46 package org.mr.api.jms.selector.syntax; 47 48 import javax.jms.Message ; 49 50 51 57 abstract class MathOperator extends BinaryOperator { 58 59 66 protected MathOperator(final String operator, final Expression leftHand,final Expression rightHand) { 67 super(operator, leftHand, rightHand); 68 } 70 71 78 public final MantaObject evaluate(final Message msg) throws TypeMismatchException { 79 80 MantaNumber result = null; 81 MantaNumber leftHand = TypeCaster.castToNumber(left().evaluate(msg), context()); 82 83 if (leftHand != null) { 84 MantaNumber rightHand = TypeCaster.castToNumber(right().evaluate(msg),context()); 85 if (rightHand != null) { 86 result = evaluate(leftHand , rightHand); 87 } } return result; 90 } 92 99 protected abstract MantaNumber evaluate(final MantaNumber leftHand, final MantaNumber rightHand); 100 101 106 private final String context() { 107 return "operator " + operator(); 108 }} | Popular Tags |