private void createComparison(Map<String, String> mapPhrases, List<Object> tokens, int i, ComparisonPredicateFactory factory) { int position = (i - 2); validateOperandPosition(position); String first = (String) toValue(tokens.remove(position), mapPhrases); Comparable second = (Comparable) toValue(tokens.remove(position), mapPhrases); if (skipIndex(first)) { first = first.substring(1); setOrAdd(tokens, position, new SkipIndexPredicate(factory.create(first, second))); } else { setOrAdd(tokens, position, factory.create(first, second)); } }
private void createComparison(Map<String, String> mapPhrases, List<Object> tokens, int i, ComparisonPredicateFactory factory) { int position = (i - 2); validateOperandPosition(position); String first = (String) toValue(tokens.remove(position), mapPhrases); Comparable second = (Comparable) toValue(tokens.remove(position), mapPhrases); if (skipIndex(first)) { first = first.substring(1); setOrAdd(tokens, position, new SkipIndexPredicate(factory.create(first, second))); } else { setOrAdd(tokens, position, factory.create(first, second)); } }
int position = (i - 2); validateOperandPosition(position); Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, like((String) first, (String) second)); } else if ("ILIKE".equalsIgnoreCase(token)) { int position = (i - 2); validateOperandPosition(position); Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, ilike((String) first, (String) second)); } else if ("REGEX".equalsIgnoreCase(token)) { int position = (i - 2); validateOperandPosition(position); Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, regex((String) first, (String) second)); } else if ("IN".equalsIgnoreCase(token)) { int position = i - 2; validateOperandPosition(position); String exp = (String) toValue(tokens.remove(position), mapPhrases); String[] values = toValue(((String) tokens.remove(position)).split(","), mapPhrases); int position = i - 1; validateOperandPosition(position); Object exp = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, Predicates.not(eval(exp))); } else if ("BETWEEN".equalsIgnoreCase(token)) {
int position = (i - 2); validateOperandPosition(position); Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, like((String) first, (String) second)); } else if ("ILIKE".equalsIgnoreCase(token)) { int position = (i - 2); validateOperandPosition(position); Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, ilike((String) first, (String) second)); } else if ("REGEX".equalsIgnoreCase(token)) { int position = (i - 2); validateOperandPosition(position); Object first = toValue(tokens.remove(position), mapPhrases); Object second = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, regex((String) first, (String) second)); } else if ("IN".equalsIgnoreCase(token)) { int position = i - 2; validateOperandPosition(position); String exp = (String) toValue(tokens.remove(position), mapPhrases); String[] values = toValue(((String) tokens.remove(position)).split(","), mapPhrases); int position = i - 1; validateOperandPosition(position); Object exp = toValue(tokens.remove(position), mapPhrases); setOrAdd(tokens, position, Predicates.not(eval(exp))); } else if ("BETWEEN".equalsIgnoreCase(token)) {