@Override public Constraint createConstraint(Queryable q, QueryNode node, PathConstraintRange con) { QueryField qf = (QueryField) node; ConstraintOp mainSetOp = OR; ConstraintOp rangeSetOp = AND; ConstraintOp leftOp = GTE; ConstraintOp rightOp = LTE; ConstraintOp op = con.getOp(); if (!(op == WITHIN || op == OVERLAPS || op == OUTSIDE || op == DOES_NOT_OVERLAP)) { throw new RuntimeException("Unimplemented behaviour: " + op); } ConstraintSet mainSet = new ConstraintSet(mainSetOp); for (String range: con.getValues()) { ConstraintSet conSet = new ConstraintSet(rangeSetOp); StringRange r = new StringRange(range); conSet.addConstraint(new SimpleConstraint(qf, leftOp, new QueryValue(r.start))); conSet.addConstraint(new SimpleConstraint(qf, rightOp, new QueryValue(r.end))); mainSet.addConstraint(conSet); } if (op == OUTSIDE || op == DOES_NOT_OVERLAP) { mainSet.negate(); } return mainSet; }
@Override public Constraint createConstraint(Queryable q, QueryNode node, PathConstraintRange con) { QueryField qf = (QueryField) node; ConstraintOp mainSetOp = OR; ConstraintOp rangeSetOp = AND; ConstraintOp leftOp = GTE; ConstraintOp rightOp = LTE; ConstraintOp op = con.getOp(); if (!(op == WITHIN || op == OVERLAPS || op == OUTSIDE || op == DOES_NOT_OVERLAP)) { throw new RuntimeException("Unimplemented behaviour: " + op); } ConstraintSet mainSet = new ConstraintSet(mainSetOp); for (String range: con.getValues()) { ConstraintSet conSet = new ConstraintSet(rangeSetOp); IntRange ir = new IntRange(range); conSet.addConstraint(new SimpleConstraint(qf, leftOp, new QueryValue(ir.start))); conSet.addConstraint(new SimpleConstraint(qf, rightOp, new QueryValue(ir.end))); mainSet.addConstraint(conSet); } if (op == OUTSIDE || op == DOES_NOT_OVERLAP) { mainSet.negate(); } return mainSet; }
@Override public Constraint createConstraint(Queryable q, QueryNode node, PathConstraintRange con) { QueryField qf = (QueryField) node; ConstraintOp mainSetOp = OR; ConstraintOp rangeSetOp = AND; ConstraintOp leftOp = GTE; ConstraintOp rightOp = LTE; ConstraintOp op = con.getOp(); if (!(op == WITHIN || op == OVERLAPS || op == OUTSIDE || op == DOES_NOT_OVERLAP)) { throw new RuntimeException("Unimplemented behaviour: " + op); } ConstraintSet mainSet = new ConstraintSet(mainSetOp); for (String range: con.getValues()) { ConstraintSet conSet = new ConstraintSet(rangeSetOp); StringRange r = new StringRange(range); conSet.addConstraint(new SimpleConstraint(qf, leftOp, new QueryValue(r.start))); conSet.addConstraint(new SimpleConstraint(qf, rightOp, new QueryValue(r.end))); mainSet.addConstraint(conSet); } if (op == OUTSIDE || op == DOES_NOT_OVERLAP) { mainSet.negate(); } return mainSet; }
@Override public Constraint createConstraint(Queryable q, QueryNode node, PathConstraintRange con) { QueryField qf = (QueryField) node; ConstraintOp mainSetOp = OR; ConstraintOp rangeSetOp = AND; ConstraintOp leftOp = GTE; ConstraintOp rightOp = LTE; ConstraintOp op = con.getOp(); if (!(op == WITHIN || op == OVERLAPS || op == OUTSIDE || op == DOES_NOT_OVERLAP)) { throw new RuntimeException("Unimplemented behaviour: " + op); } ConstraintSet mainSet = new ConstraintSet(mainSetOp); for (String range: con.getValues()) { ConstraintSet conSet = new ConstraintSet(rangeSetOp); IntRange ir = new IntRange(range); conSet.addConstraint(new SimpleConstraint(qf, leftOp, new QueryValue(ir.start))); conSet.addConstraint(new SimpleConstraint(qf, rightOp, new QueryValue(ir.end))); mainSet.addConstraint(conSet); } if (op == OUTSIDE || op == DOES_NOT_OVERLAP) { mainSet.negate(); } return mainSet; }
public static Query whereNotSet() throws Exception { QueryClass c1 = new QueryClass(Company.class); QueryValue v1 = new QueryValue("Company%"); QueryValue v2 = new QueryValue(new Integer(2000)); QueryField f1 = new QueryField(c1, "name"); QueryField f2 = new QueryField(c1, "vatNumber"); SimpleConstraint sc1 = new SimpleConstraint(f1, ConstraintOp.MATCHES, v1); SimpleConstraint sc2 = new SimpleConstraint(f2, ConstraintOp.GREATER_THAN, v2); ConstraintSet cs1 = new ConstraintSet(ConstraintOp.AND); cs1.addConstraint(sc1); cs1.addConstraint(sc2); cs1.negate(); Query q1 = new Query(); q1.addFrom(c1); q1.addToSelect(f1); q1.setConstraint(cs1); return q1; }
public static Query whereNotSet() throws Exception { QueryClass c1 = new QueryClass(Company.class); QueryValue v1 = new QueryValue("Company%"); QueryValue v2 = new QueryValue(new Integer(2000)); QueryField f1 = new QueryField(c1, "name"); QueryField f2 = new QueryField(c1, "vatNumber"); SimpleConstraint sc1 = new SimpleConstraint(f1, ConstraintOp.MATCHES, v1); SimpleConstraint sc2 = new SimpleConstraint(f2, ConstraintOp.GREATER_THAN, v2); ConstraintSet cs1 = new ConstraintSet(ConstraintOp.AND); cs1.addConstraint(sc1); cs1.addConstraint(sc2); cs1.negate(); Query q1 = new Query(); q1.addFrom(c1); q1.addToSelect(f1); q1.setConstraint(cs1); return q1; }