1 46 package org.mr.api.jms.selector.syntax; 47 48 import javax.jms.Message ; 49 50 51 55 class And extends LogicalOperator { 56 57 60 private static final String CONTEXT = "and operator"; 61 62 63 69 public And(final Expression leftHand, final Expression rightHand) { 70 super("and", leftHand, rightHand); 71 } 73 74 84 public final MantaObject evaluate(final Message msg) throws TypeMismatchException { 85 86 MantaBoolean result = null; 87 MantaBoolean leftHand = TypeCaster.castToBool(left().evaluate(msg), CONTEXT); 88 if (leftHand!= null) { 89 if (!leftHand.value()) { 90 result = MantaBoolean.FALSE; 91 } else { 93 MantaBoolean rightHand= TypeCaster.castToBool(right().evaluate(msg), CONTEXT); 94 result = leftHand.and(rightHand); 95 } } else { 98 MantaBoolean rightHand= TypeCaster.castToBool(right().evaluate(msg), CONTEXT); 99 if (rightHand!= null) { 100 result = rightHand.and(leftHand); 101 } } return result; 104 }} | Popular Tags |