@Override public void visit(AndOr obj) { this.criteriaBuffer.add(OPEN); super.visitNode(obj.getLeftCondition()); this.criteriaBuffer.add(CLOSE); this.criteriaBuffer.add(SPACE); this.criteriaBuffer.add(obj.getOperator().toString()); this.criteriaBuffer.add(SPACE); this.criteriaBuffer.add(OPEN); super.visitNode(obj.getRightCondition()); this.criteriaBuffer.add(CLOSE); }
@Override public void visit(AndOr obj) { append(obj.getLeftCondition()); append(obj.getRightCondition()); if (!this.exceptions.isEmpty()) { return; } boolean right = this.match.pop(); boolean left = this.match.pop(); switch(obj.getOperator()) { case AND: this.match.push(right && left); break; case OR: this.match.push(right || left); break; } }
public void visit(AndOr obj) { String opString = obj.getOperator().toString(); appendNestedCondition(obj, obj.getLeftCondition()); buffer.append(Tokens.SPACE) .append(opString) .append(Tokens.SPACE); appendNestedCondition(obj, obj.getRightCondition()); }
@Override public void visit(AndOr obj) { String opString = obj.getOperator().name().toLowerCase(); appendNestedCondition(obj, obj.getLeftCondition()); this.filter.append(Tokens.SPACE) .append(opString) .append(Tokens.SPACE); appendNestedCondition(obj, obj.getRightCondition()); }
@Override public void visit(AndOr obj) { String opString = obj.getOperator().name().toLowerCase(); appendNestedCondition(obj, obj.getLeftCondition()); this.filter.append(Tokens.SPACE) .append(opString) .append(Tokens.SPACE); appendNestedCondition(obj, obj.getRightCondition()); }
public void visit(AndOr obj) { visitNode(obj.getLeftCondition()); visitNode(obj.getRightCondition()); }
@Override public void visit(AndOr obj) { visitNode(obj.getLeftCondition()); visitNode(obj.getRightCondition()); }
/** * Helper method for {@link #separateCriteriaByAnd(Condition)} that * can be called recursively to collect parts. * @param crit Crit to break apart * @param parts List to add parts to */ private static void separateCriteria(Condition crit, List<Condition> parts) { if(crit instanceof AndOr) { AndOr compCrit = (AndOr) crit; if(compCrit.getOperator() == Operator.AND) { separateCriteria(compCrit.getLeftCondition(), parts); separateCriteria(compCrit.getRightCondition(), parts); } else { parts.add(crit); } } else { parts.add(crit); } }
@Override public void visit(AndOr obj) { append(obj.getLeftCondition()); append(obj.getRightCondition()); DBObject right = (DBObject)this.onGoingExpression.pop(); DBObject left = (DBObject) this.onGoingExpression.pop(); switch(obj.getOperator()) { case AND: this.onGoingExpression.push(QueryBuilder.start().and(left, right).get()); break; case OR: this.onGoingExpression.push(QueryBuilder.start().or(left, right).get()); break; } }
public void testGetCriteria() throws Exception { AndOr cc = example(org.teiid.query.sql.lang.CompoundCriteria.AND); assertTrue(cc.getLeftCondition() instanceof Comparison); assertTrue(cc.getRightCondition() instanceof Comparison); }
filterList.add(stringOp); filterList.addAll(getSearchFilterFromWhereClause(crit.getLeftCondition(), new LinkedList<String>())); filterList.addAll(getSearchFilterFromWhereClause(crit.getRightCondition(), new LinkedList<String>())); filterList.add(")"); //$NON-NLS-1$
/** * only a single join predicate is supported, so move up conditions if possible */ private void moveCondition(Select select, TableReference tableReference) { if (!(tableReference instanceof Join)) { return; } Join join = (Join)tableReference; if (join.getJoinType() != JoinType.INNER_JOIN) { return; } while (join.getCondition() instanceof AndOr) { AndOr andOr = (AndOr) join.getCondition(); if (andOr.getOperator() == AndOr.Operator.OR) { break; } Condition c = andOr.getLeftCondition(); select.setWhere(LanguageUtil.combineCriteria(select.getWhere(), c, getLanguageFactory())); join.setCondition(andOr.getRightCondition()); } moveCondition(select, join.getLeftItem()); moveCondition(select, join.getRightItem()); } }
@Test public void testExpansion1() throws Exception { SetCriteria inCriteria = helpExample(false); LanguageBridgeFactory lbf = new LanguageBridgeFactory(RealMetadataFactory.example1Cached()); lbf.setMaxInPredicateSize(2); AndOr or = (AndOr) lbf.translate(inCriteria); assertEquals(Operator.OR, or.getOperator()); assertEquals(2, ((In)or.getRightCondition()).getRightExpressions().size()); inCriteria.setNegated(true); AndOr and = (AndOr) lbf.translate(inCriteria); assertEquals(Operator.AND, and.getOperator()); assertEquals("300 NOT IN (100, 200) AND 300 NOT IN (300, 400)", and.toString()); }