1 46 package org.mr.api.jms.selector.syntax; 47 48 import java.util.HashSet ; 49 import java.util.Iterator ; 50 import java.util.TreeSet ; 51 52 import javax.jms.Message ; 53 54 55 62 class InExpression extends IdentifierExpression { 63 64 67 private final HashSet values; 68 69 70 76 public InExpression(final Identifier ident, final HashSet values) { 77 super(ident); 78 this.values = values; 79 } 81 88 public final MantaObject evaluate(final Message msg) 89 throws TypeMismatchException { 90 MantaBoolean result = null; 91 92 MantaString value = TypeCaster.castToString(identifier().evaluate(msg), "in expression"); 93 if (value != null) { 94 if (values.contains(value.getObject())) { 95 result = MantaBoolean.TRUE; 96 } else { 98 result = MantaBoolean.FALSE; 99 } } return result; 102 } 104 105 110 public final String toString() { 111 112 StringBuffer result = new StringBuffer (); 113 result.append('('); 114 result.append(identifier().toString()); 115 result.append(" in ("); 116 int i = 0; 117 118 TreeSet sorted = new TreeSet (values); 119 for (Iterator iter = sorted.iterator(); iter.hasNext(); i++) { 123 if (i > 0) { 124 result.append(", "); 125 } result.append("'"); 127 result.append((String ) iter.next()); 128 result.append("'"); 129 } result.append("))"); 131 return result.toString(); 132 }} | Popular Tags |