private static QueryCriteria parseStatement(LinkedList<String> postFixStatement) throws QueryFormulationException { Stack<QueryCriteria> stack = new Stack<QueryCriteria>(); for (String item : postFixStatement) { if (item.equals("AND")) { BooleanQueryCriteria bQC = new BooleanQueryCriteria(); bQC.addTerm(stack.pop()); bQC.addTerm(stack.pop()); stack.push(bQC); } else if (item.equals("OR")) { BooleanQueryCriteria bQC = new BooleanQueryCriteria(); bQC.setOperator(BooleanQueryCriteria.OR); bQC.addTerm(stack.pop()); bQC.addTerm(stack.pop()); stack.push(bQC); } else if (item.equals("NOT")) { BooleanQueryCriteria bQC = new BooleanQueryCriteria(); bQC.setOperator(BooleanQueryCriteria.NOT); bQC.addTerm(stack.pop()); stack.push(bQC); } else { stack.push(new Expression(item).convertToQueryCriteria()); } } return stack.pop(); }
private static QueryCriteria parseStatement(LinkedList<String> postFixStatement) throws QueryFormulationException { Stack<QueryCriteria> stack = new Stack<QueryCriteria>(); for (String item : postFixStatement) { if (item.equals("AND")) { BooleanQueryCriteria bQC = new BooleanQueryCriteria(); bQC.addTerm(stack.pop()); bQC.addTerm(stack.pop()); stack.push(bQC); } else if (item.equals("OR")) { BooleanQueryCriteria bQC = new BooleanQueryCriteria(); bQC.setOperator(BooleanQueryCriteria.OR); bQC.addTerm(stack.pop()); bQC.addTerm(stack.pop()); stack.push(bQC); } else if (item.equals("NOT")) { BooleanQueryCriteria bQC = new BooleanQueryCriteria(); bQC.setOperator(BooleanQueryCriteria.NOT); bQC.addTerm(stack.pop()); stack.push(bQC); } else { stack.push(new Expression(item).convertToQueryCriteria()); } } return stack.pop(); }
criteria = new BooleanQueryCriteria(); try { ((BooleanQueryCriteria) criteria).setOperator((Integer) criteriaHash.get("operator")); } catch (QueryFormulationException e) { System.out.println("Error generating Boolean Query.");
criteria = new BooleanQueryCriteria(); try { ((BooleanQueryCriteria) criteria).setOperator((Integer) criteriaHash.get("operator")); } catch (QueryFormulationException e) { System.out.println("Error generating Boolean Query.");
private QueryCriteria handleQueryCriteria(QueryCriteria qc) throws QueryFormulationException { if (qc instanceof BooleanQueryCriteria) { LinkedList<QueryCriteria> qcList = new LinkedList<QueryCriteria>(); for (QueryCriteria criteria : ((BooleanQueryCriteria) qc).getTerms()) { qcList.add(this.handleQueryCriteria(criteria)); } BooleanQueryCriteria bqc = new BooleanQueryCriteria(); bqc.setOperator(((BooleanQueryCriteria) qc).getOperator()); bqc.setElementName(qc.getElementName()); for (QueryCriteria criteria : qcList) { bqc.addTerm(criteria); } return bqc; }else if (qc.getElementName().equals(elementName) && qc instanceof TermQueryCriteria) { return this.handleTermQueryCriteria((TermQueryCriteria) qc); }else if (qc.getElementName().equals(elementName) && qc instanceof RangeQueryCriteria) { return this.handleRangeQueryCriteria((RangeQueryCriteria) qc); }else { return qc; } }
private QueryCriteria handleQueryCriteria(QueryCriteria qc) throws QueryFormulationException { if (qc instanceof BooleanQueryCriteria) { LinkedList<QueryCriteria> qcList = new LinkedList<QueryCriteria>(); for (QueryCriteria criteria : ((BooleanQueryCriteria) qc).getTerms()) { qcList.add(this.handleQueryCriteria(criteria)); } BooleanQueryCriteria bqc = new BooleanQueryCriteria(); bqc.setOperator(((BooleanQueryCriteria) qc).getOperator()); bqc.setElementName(qc.getElementName()); for (QueryCriteria criteria : qcList) { bqc.addTerm(criteria); } return bqc; }else if (qc.getElementName().equals(elementName) && qc instanceof TermQueryCriteria) { return this.handleTermQueryCriteria((TermQueryCriteria) qc); }else if (qc.getElementName().equals(elementName) && qc instanceof RangeQueryCriteria) { return this.handleRangeQueryCriteria((RangeQueryCriteria) qc); }else { return qc; } }
queryCriteria = new BooleanQueryCriteria(); try{ ((BooleanQueryCriteria)queryCriteria).setOperator(avroQueryCriteria.getOperator()); } catch (QueryFormulationException e){ System.out.println("Error generating Boolean Query.");
} else { BooleanQueryCriteria bqc = new BooleanQueryCriteria(); bqc.setOperator(BooleanQueryCriteria.AND); for (Term aT : t) { bqc.addTerm(new TermQueryCriteria(aT.field(), aT List<BooleanClause> clauses = ((BooleanQuery) luceneQuery).clauses(); BooleanQueryCriteria bqc = new BooleanQueryCriteria(); bqc.setOperator(BooleanQueryCriteria.AND); for (BooleanClause clause : clauses) { if (clause.getOccur().equals(BooleanClause.Occur.SHOULD)) { bqc.setOperator(BooleanQueryCriteria.OR);
} else { BooleanQueryCriteria bqc = new BooleanQueryCriteria(); bqc.setOperator(BooleanQueryCriteria.AND); for (Term aT : t) { bqc.addTerm(new TermQueryCriteria(aT.field(), aT List<BooleanClause> clauses = ((BooleanQuery) luceneQuery).clauses(); BooleanQueryCriteria bqc = new BooleanQueryCriteria(); bqc.setOperator(BooleanQueryCriteria.AND); for (BooleanClause clause : clauses) { if (clause.getOccur().equals(BooleanClause.Occur.SHOULD)) { bqc.setOperator(BooleanQueryCriteria.OR);
public QueryCriteria convertToQueryCriteria() throws QueryFormulationException { switch (this.op) { case GREATER_THAN: return new RangeQueryCriteria(this.key, this.val, null, false); case LESS_THAN: return new RangeQueryCriteria(this.key, null, this.val, false); case EQUAL_TO: return new TermQueryCriteria(this.key, this.val); case NOT_EQUAL_TO: BooleanQueryCriteria notEqBQC = new BooleanQueryCriteria(); notEqBQC.setOperator(BooleanQueryCriteria.NOT); notEqBQC.addTerm(new TermQueryCriteria(this.key, this.val)); return notEqBQC; case GREATER_THAN_OR_EQUAL_TO: return new RangeQueryCriteria(this.key, this.val, null, true); case LESS_THAN_OR_EQUAL_TO: return new RangeQueryCriteria(this.key, null, this.val, true); } throw new QueryFormulationException( "Was not able to form query . . . probably an invalid operator -- " + this.toString()); }
public QueryCriteria convertToQueryCriteria() throws QueryFormulationException { switch (this.op) { case GREATER_THAN: return new RangeQueryCriteria(this.key, this.val, null, false); case LESS_THAN: return new RangeQueryCriteria(this.key, null, this.val, false); case EQUAL_TO: return new TermQueryCriteria(this.key, this.val); case NOT_EQUAL_TO: BooleanQueryCriteria notEqBQC = new BooleanQueryCriteria(); notEqBQC.setOperator(BooleanQueryCriteria.NOT); notEqBQC.addTerm(new TermQueryCriteria(this.key, this.val)); return notEqBQC; case GREATER_THAN_OR_EQUAL_TO: return new RangeQueryCriteria(this.key, this.val, null, true); case LESS_THAN_OR_EQUAL_TO: return new RangeQueryCriteria(this.key, null, this.val, true); } throw new QueryFormulationException( "Was not able to form query . . . probably an invalid operator -- " + this.toString()); }