public Object visit(OrQueryNode node, Object data) throws RepositoryException { return node.acceptOperands(this, data); }
public Object visit(OrQueryNode node, Object data) throws RepositoryException { return node.acceptOperands(this, data); }
public Object visit(OrQueryNode node, Object data) throws RepositoryException { BooleanQuery orQuery = new BooleanQuery(); Object[] result = node.acceptOperands(this, null); for (Object aResult : result) { Query operand = (Query) aResult; if (operand instanceof BooleanQuery) { // check if the clauses are all optional, then // we can collapse into the the enclosing orQuery boolean hasNonOptional = false; for (BooleanClause clause : ((BooleanQuery) operand).getClauses()) { if (clause.isProhibited() || clause.isRequired()) { hasNonOptional = true; break; } } if (hasNonOptional) { // cannot collapse orQuery.add(operand, Occur.SHOULD); } else { // collapse for (BooleanClause clause : ((BooleanQuery) operand).getClauses()) { orQuery.add(clause); } } } else { orQuery.add(operand, Occur.SHOULD); } } return orQuery; }
public Object visit(OrQueryNode node, Object data) throws RepositoryException { BooleanQuery orQuery = new BooleanQuery(); Object[] result = node.acceptOperands(this, null); for (Object aResult : result) { Query operand = (Query) aResult; if (operand instanceof BooleanQuery) { // check if the clauses are all optional, then // we can collapse into the the enclosing orQuery boolean hasNonOptional = false; for (BooleanClause clause : ((BooleanQuery) operand).getClauses()) { if (clause.isProhibited() || clause.isRequired()) { hasNonOptional = true; break; } } if (hasNonOptional) { // cannot collapse orQuery.add(operand, Occur.SHOULD); } else { // collapse for (BooleanClause clause : ((BooleanQuery) operand).getClauses()) { orQuery.add(clause); } } } else { orQuery.add(operand, Occur.SHOULD); } } return orQuery; }