You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

QueryCondition.java 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * Copyright 2004-2011 H2 Group.
  3. * Copyright 2011 James Moger.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. package com.iciql;
  18. /**
  19. * This class represents a query with an incomplete condition.
  20. *
  21. * @param <T>
  22. * the return type of the query
  23. * @param <A>
  24. * the incomplete condition data type
  25. */
  26. public class QueryCondition<T, A> {
  27. private Query<T> query;
  28. private A x;
  29. QueryCondition(Query<T> query, A x) {
  30. this.query = query;
  31. this.x = x;
  32. }
  33. public QueryWhere<T> is(A y) {
  34. query.addConditionToken(new Condition<A>(x, y, CompareType.EQUAL));
  35. return new QueryWhere<T>(query);
  36. }
  37. public QueryWhere<T> exceeds(A y) {
  38. query.addConditionToken(new Condition<A>(x, y, CompareType.EXCEEDS));
  39. return new QueryWhere<T>(query);
  40. }
  41. public QueryWhere<T> atLeast(A y) {
  42. query.addConditionToken(new Condition<A>(x, y, CompareType.AT_LEAST));
  43. return new QueryWhere<T>(query);
  44. }
  45. public QueryWhere<T> lessThan(A y) {
  46. query.addConditionToken(new Condition<A>(x, y, CompareType.LESS_THAN));
  47. return new QueryWhere<T>(query);
  48. }
  49. public QueryWhere<T> atMost(A y) {
  50. query.addConditionToken(new Condition<A>(x, y, CompareType.AT_MOST));
  51. return new QueryWhere<T>(query);
  52. }
  53. public QueryWhere<T> like(A pattern) {
  54. query.addConditionToken(new Condition<A>(x, pattern, CompareType.LIKE));
  55. return new QueryWhere<T>(query);
  56. }
  57. }