@Override public void visit(InExpression expression) { Expression left = expression.getLeftExpression(); ExpressionList rightItemsList = (ExpressionList) expression.getRightItemsList(); List<EqualsTo> equalsToList = new ArrayList<>(); for (Expression item : rightItemsList.getExpressions()) { EqualsTo eq = new EqualsTo(); eq.setLeftExpression(left); eq.setRightExpression(item); equalsToList.add(eq); } int size = equalsToList.size(); if (size > 1) { OrExpression or = new OrExpression(equalsToList.get(size - 1), equalsToList.get(size - 2)); for (int i = size - 3; i >= 0; i--) { or = new OrExpression(equalsToList.get(i), or); } result = visitEx(or); } else { result = visitEx(equalsToList.get(0)); } }
Term t1 = visitEx(first); if (t1 == null) throw new RuntimeException("Unable to find column name for variable: " Term t2 = visitEx(second); if (expressions.size() == 3){ Expression third = expressions.get(2); t3 = visitEx(third); t1 = visitEx(first); Term out_string = visitEx(second); if (expressions.size() == 3) { Expression third = expressions.get(2); in_string = visitEx(third); Term first_string = visitEx(first); Term second_string = visitEx(second); Term second_string = visitEx(second);
@Override public void visit(Between expression) { Expression left = expression.getLeftExpression(); Expression e1 = expression.getBetweenExpressionStart(); Expression e2 = expression.getBetweenExpressionEnd(); GreaterThanEquals gte = new GreaterThanEquals(); gte.setLeftExpression(left); gte.setRightExpression(e1); MinorThanEquals mte = new MinorThanEquals(); mte.setLeftExpression(left); mte.setRightExpression(e2); AndExpression e = new AndExpression(gte, mte); result = visitEx(e); }