/** * Calls accept on the two operands in the comparison node. */ @Override public boolean visit(ComparisonImpl node) { node.getOperand1().accept(this); node.getOperand2().accept(this); return true; }
@Override public void restrictPushDown(SelectorImpl s) { if (operand2.currentValue() != null) { if (operand1.canRestrictSelector(s)) { s.restrictSelector(this); } } }
/** * Calls accept on the all operands in the "in" node. */ @Override public boolean visit(InImpl node) { node.getOperand1().accept(this); for (StaticOperandImpl s : node.getOperand2()) { s.accept(this); } return true; }
@Override public boolean visit(FullTextSearchImpl node) { node.setQuery(query); node.bindSelector(source); return super.visit(node); }
@Override public AstElement copyOf() { return new ComparisonImpl(operand1.createCopy(), operator, operand2); } }
private void pushDown() { if (queryConstraint != null) { queryConstraint.restrictPushDown(this); } if (!outerJoinLeftHandSide && !outerJoinRightHandSide) { for (JoinConditionImpl c : allJoinConditions) { c.restrictPushDown(this); } } }
/** * Calls accept on each of the attached constraints of the AND node. */ @Override public boolean visit(AndImpl node) { for (ConstraintImpl constraint : node.getConstraints()) { constraint.accept(this); } return true; }
/** * Calls accept on the static operand in the similar search constraint. */ @Override public boolean visit(SimilarImpl node) { node.getPathExpression().accept(this); return true; }
/** * Calls accept on the static operand in the suggest search constraint. */ @Override public boolean visit(SuggestImpl node) { node.getExpression().accept(this); return true; }
/** * Calls accept on the dynamic operand in the lower-case node. */ @Override public boolean visit(UpperCaseImpl node) { return node.getOperand().accept(this); }
/** * Calls accept on the two operands in the comparison node. */ @Override public boolean visit(ComparisonImpl node) { node.getOperand1().accept(this); node.getOperand2().accept(this); return true; }
/** * Calls accept on the all operands in the "in" node. */ @Override public boolean visit(InImpl node) { node.getOperand1().accept(this); for (StaticOperandImpl s : node.getOperand2()) { s.accept(this); } return true; }
@Override public void restrictPushDown(SelectorImpl s) { if (operand2.currentValue() != null) { if (operand1.canRestrictSelector(s)) { s.restrictSelector(this); } } }
/** * Calls accept on the two operands in the comparison node. */ @Override public boolean visit(ComparisonImpl node) { node.getOperand1().accept(this); node.getOperand2().accept(this); return true; }
@Override public void restrictPushDown(SelectorImpl s) { for (StaticOperandImpl op : operand2) { if (op.currentValue() == null) { // one unknown value means it is not pushed down return; } } if (operand1.canRestrictSelector(s)) { s.restrictSelector(this); } }