diff options
Diffstat (limited to 'src/main/java/com/iciql/QueryCondition.java')
-rw-r--r-- | src/main/java/com/iciql/QueryCondition.java | 238 |
1 files changed, 118 insertions, 120 deletions
diff --git a/src/main/java/com/iciql/QueryCondition.java b/src/main/java/com/iciql/QueryCondition.java index cef95c1..fce66af 100644 --- a/src/main/java/com/iciql/QueryCondition.java +++ b/src/main/java/com/iciql/QueryCondition.java @@ -21,128 +21,126 @@ import com.iciql.util.Utils; /** * This class represents a query with an incomplete condition. - * - * @param <T> - * the return type of the query - * @param <A> - * the incomplete condition data type + * + * @param <T> the return type of the query + * @param <A> the incomplete condition data type */ public class QueryCondition<T, A> { - private Query<T> query; - private A x; - - QueryCondition(Query<T> query, A x) { - this.query = query; - this.x = x; - } - - public <Q, Z> QueryWhere<T> in(SubQuery<Q, Z> q) { - query.addConditionToken(new SubQueryCondition<A, Q, Z>(x, q)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> oneOf(A... a) { - return oneOf(Utils.newArrayIterable(a)); - } - - public QueryWhere<T> oneOf(Iterable<A> i) { - query.addConditionToken(new Condition<A>(x, i, CompareType.IN)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> noneOf(A... a) { - return noneOf(Utils.newArrayIterable(a)); - } - - public QueryWhere<T> noneOf(Iterable<A> i) { - query.addConditionToken(new Condition<A>(x, i, CompareType.NOT_IN)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> is(A y) { - query.addConditionToken(new Condition<A>(x, y, CompareType.EQUAL)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> isNot(A y) { - query.addConditionToken(new Condition<A>(x, y, CompareType.NOT_EQUAL)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> isNull() { - query.addConditionToken(new Condition<A>(x, CompareType.IS_NULL)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> isNotNull() { - query.addConditionToken(new Condition<A>(x, CompareType.IS_NOT_NULL)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> exceeds(A y) { - query.addConditionToken(new Condition<A>(x, y, CompareType.EXCEEDS)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> atLeast(A y) { - query.addConditionToken(new Condition<A>(x, y, CompareType.AT_LEAST)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> lessThan(A y) { - query.addConditionToken(new Condition<A>(x, y, CompareType.LESS_THAN)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> atMost(A y) { - query.addConditionToken(new Condition<A>(x, y, CompareType.AT_MOST)); - return new QueryWhere<T>(query); - } - - public QueryBetween<T, A> between(A y) { - return new QueryBetween<T, A>(query, x, y); - } - - public QueryWhere<T> like(A pattern) { - query.addConditionToken(new Condition<A>(x, pattern, CompareType.LIKE)); - return new QueryWhere<T>(query); - } - - /* - * These method allows you to generate "x=?", "x!=?", etc where conditions. - * Parameter substitution must be done manually later with db.executeQuery. - * This allows for building re-usable SQL string statements from your model - * classes. - */ - public QueryWhere<T> isParameter() { - query.addConditionToken(new RuntimeParameter<A>(x, CompareType.EQUAL)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> isNotParameter() { - query.addConditionToken(new RuntimeParameter<A>(x, CompareType.NOT_EQUAL)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> exceedsParameter() { - query.addConditionToken(new RuntimeParameter<A>(x, CompareType.EXCEEDS)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> lessThanParameter() { - query.addConditionToken(new RuntimeParameter<A>(x, CompareType.LESS_THAN)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> atMostParameter() { - query.addConditionToken(new RuntimeParameter<A>(x, CompareType.AT_MOST)); - return new QueryWhere<T>(query); - } - - public QueryWhere<T> likeParameter() { - query.addConditionToken(new RuntimeParameter<A>(x, CompareType.LIKE)); - return new QueryWhere<T>(query); - } + private Query<T> query; + private A x; + + QueryCondition(Query<T> query, A x) { + this.query = query; + this.x = x; + } + + public <Q, Z> QueryWhere<T> in(SubQuery<Q, Z> q) { + query.addConditionToken(new SubQueryCondition<A, Q, Z>(x, q)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> oneOf(A... a) { + return oneOf(Utils.newArrayIterable(a)); + } + + public QueryWhere<T> oneOf(Iterable<A> i) { + query.addConditionToken(new Condition<A>(x, i, CompareType.IN)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> noneOf(A... a) { + return noneOf(Utils.newArrayIterable(a)); + } + + public QueryWhere<T> noneOf(Iterable<A> i) { + query.addConditionToken(new Condition<A>(x, i, CompareType.NOT_IN)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> is(A y) { + query.addConditionToken(new Condition<A>(x, y, CompareType.EQUAL)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> isNot(A y) { + query.addConditionToken(new Condition<A>(x, y, CompareType.NOT_EQUAL)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> isNull() { + query.addConditionToken(new Condition<A>(x, CompareType.IS_NULL)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> isNotNull() { + query.addConditionToken(new Condition<A>(x, CompareType.IS_NOT_NULL)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> exceeds(A y) { + query.addConditionToken(new Condition<A>(x, y, CompareType.EXCEEDS)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> atLeast(A y) { + query.addConditionToken(new Condition<A>(x, y, CompareType.AT_LEAST)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> lessThan(A y) { + query.addConditionToken(new Condition<A>(x, y, CompareType.LESS_THAN)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> atMost(A y) { + query.addConditionToken(new Condition<A>(x, y, CompareType.AT_MOST)); + return new QueryWhere<T>(query); + } + + public QueryBetween<T, A> between(A y) { + return new QueryBetween<T, A>(query, x, y); + } + + public QueryWhere<T> like(A pattern) { + query.addConditionToken(new Condition<A>(x, pattern, CompareType.LIKE)); + return new QueryWhere<T>(query); + } + + /* + * These method allows you to generate "x=?", "x!=?", etc where conditions. + * Parameter substitution must be done manually later with db.executeQuery. + * This allows for building re-usable SQL string statements from your model + * classes. + */ + public QueryWhere<T> isParameter() { + query.addConditionToken(new RuntimeParameter<A>(x, CompareType.EQUAL)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> isNotParameter() { + query.addConditionToken(new RuntimeParameter<A>(x, CompareType.NOT_EQUAL)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> exceedsParameter() { + query.addConditionToken(new RuntimeParameter<A>(x, CompareType.EXCEEDS)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> lessThanParameter() { + query.addConditionToken(new RuntimeParameter<A>(x, CompareType.LESS_THAN)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> atMostParameter() { + query.addConditionToken(new RuntimeParameter<A>(x, CompareType.AT_MOST)); + return new QueryWhere<T>(query); + } + + public QueryWhere<T> likeParameter() { + query.addConditionToken(new RuntimeParameter<A>(x, CompareType.LIKE)); + return new QueryWhere<T>(query); + } } |