/** * @see org.xcmis.search.QueryObjectModelVisitor#visit(org.xcmis.search.model.constraint.Or) */ public void visit(Or node) throws VisitException { // Push query from left constraint to stack Visitors.visit(node.getLeft(), this); // Push query from right constraint to stack Visitors.visit(node.getRight(), this); final BooleanQuery resultQuery = new BooleanQuery(); // get query builded by left constraint. resultQuery.add((Query)queryBuilderStack.pop(), BooleanClause.Occur.SHOULD); // get query builded by right constraint. resultQuery.add((Query)queryBuilderStack.pop(), BooleanClause.Occur.SHOULD); queryBuilderStack.push(resultQuery); }
/** * {@inheritDoc} * @throws VisitException if exception occurs * * @see QueryObjectModelVisitor#visit(Or) */ public void visit(Or or) throws VisitException { strategy.visit(or); enqueue(or.getLeft()); enqueue(or.getRight()); visitNext(); }
/** * {@inheritDoc} * @throws VisitException if exception occurs * * @see QueryObjectModelVisitor#visit(Or) */ public void visit(Or or) throws VisitException { append('('); or.getLeft().accept(this); append(" OR "); or.getRight().accept(this); append(')'); }
constraint = new Or(previous.getLeft(), new And(previous.getRight(), constraint));