return eval(tokens.get(0)); validateOperandPosition(position); Object exp = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, Predicates.not(eval(exp))); } else if ("BETWEEN".equalsIgnoreCase(token)) { int position = i - 3; Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, flattenCompound(eval(first), eval(second), AndPredicate.class)); } else if ("OR".equalsIgnoreCase(token)) { int position = i - 2; Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, flattenCompound(eval(first), eval(second), OrPredicate.class)); } else { throw new RuntimeException("Unknown token " + token);
return eval(tokens.get(0)); validateOperandPosition(position); Object exp = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, Predicates.not(eval(exp))); } else if ("BETWEEN".equalsIgnoreCase(token)) { int position = i - 3; Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, flattenCompound(eval(first), eval(second), AndPredicate.class)); } else if ("OR".equalsIgnoreCase(token)) { int position = i - 2; Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, flattenCompound(eval(first), eval(second), OrPredicate.class)); } else { throw new RuntimeException("Unknown token " + token);