Skip to content

Commit 1b1a25c

Browse files
committed
Implemented #36 (don't render empty groups)
1 parent a63f495 commit 1b1a25c

File tree

2 files changed

+36
-56
lines changed

2 files changed

+36
-56
lines changed

src/main/java/org/javawebstack/orm/query/Query.java

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -144,18 +144,6 @@ public Query<T> orLike(String left, Object right) {
144144
return orWhere(left, "LIKE", right);
145145
}
146146

147-
public QueryGroup<T> whereMorph(String name, Class<? extends Model> type) {
148-
return where.whereMorph(name, type);
149-
}
150-
151-
public QueryGroup<T> whereMorph(String name, Class<? extends Model> type, Object id) {
152-
return where.whereMorph(name, type, id);
153-
}
154-
155-
public QueryGroup<T> whereMorph(String name, Model entity) {
156-
return where.whereMorph(name, entity);
157-
}
158-
159147
public Query<T> orWhere(Class<? extends Model> leftTable, String left, String operator, Class<? extends Model> rightTable, String right) {
160148
if (rightTable != null)
161149
right = Repo.get(rightTable).getInfo().getTableName() + "." + Repo.get(rightTable).getInfo().getColumnName(right);
@@ -212,33 +200,25 @@ public Query<T> orWhereId(String operator, Class<? extends Model> other, String
212200
return orWhereId(operator, new QueryColumn(Repo.get(other).getInfo().getTableName() + "." + Repo.get(other).getInfo().getColumnName(field)));
213201
}
214202

203+
@Deprecated
215204
public Query<T> isNull(Object left) {
216205
where.isNull(left);
217206
return this;
218207
}
219208

209+
@Deprecated
220210
public Query<T> notNull(Object left) {
221211
where.notNull(left);
222212
return this;
223213
}
224214

225215
public Query<T> whereNull(Object left) {
226-
where.isNull(left);
216+
where.whereNull(left);
227217
return this;
228218
}
229219

230220
public Query<T> whereNotNull(Object left) {
231-
where.notNull(left);
232-
return this;
233-
}
234-
235-
public Query<T> lessThan(Object left, Object right) {
236-
where.lessThan(left, right);
237-
return this;
238-
}
239-
240-
public Query<T> greaterThan(Object left, Object right) {
241-
where.greaterThan(left, right);
221+
where.whereNotNull(left);
242222
return this;
243223
}
244224

@@ -252,23 +232,25 @@ public Query<T> orWhere(Object left, Object right) {
252232
return this;
253233
}
254234

235+
@Deprecated
255236
public Query<T> orIsNull(Object left) {
256237
where.orIsNull(left);
257238
return this;
258239
}
259240

241+
@Deprecated
260242
public Query<T> orNotNull(Object left) {
261243
where.orNotNull(left);
262244
return this;
263245
}
264246

265-
public Query<T> orLessThan(Object left, Object right) {
266-
where.orLessThan(left, right);
247+
public Query<T> orWhereNull(Object left) {
248+
where.orWhereNull(left);
267249
return this;
268250
}
269251

270-
public Query<T> orGreaterThan(Object left, Object right) {
271-
where.orGreaterThan(left, right);
252+
public Query<T> orWhereNotNull(Object left) {
253+
where.orWhereNotNull(left);
272254
return this;
273255
}
274256

src/main/java/org/javawebstack/orm/query/QueryGroup.java

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,30 @@ public List<QueryElement> getQueryElements() {
2929
return queryElements;
3030
}
3131

32+
@Deprecated
3233
public QueryGroup<T> and(Function<QueryGroup<T>, QueryGroup<T>> group) {
34+
return where(group);
35+
}
36+
37+
public QueryGroup<T> where(Function<QueryGroup<T>, QueryGroup<T>> group) {
3338
QueryGroup<T> innerGroup = group.apply(new QueryGroup<>());
39+
if(innerGroup.queryElements.size() == 0)
40+
return this;
3441
if (queryElements.size() > 0)
3542
queryElements.add(QueryConjunction.AND);
3643
queryElements.add(innerGroup);
3744
return this;
3845
}
3946

47+
@Deprecated
4048
public QueryGroup<T> or(Function<QueryGroup<T>, QueryGroup<T>> group) {
49+
return orWhere(group);
50+
}
51+
52+
public QueryGroup<T> orWhere(Function<QueryGroup<T>, QueryGroup<T>> group) {
4153
QueryGroup<T> innerGroup = group.apply(new QueryGroup<>());
54+
if(innerGroup.queryElements.size() == 0)
55+
return this;
4256
if (queryElements.size() > 0)
4357
queryElements.add(QueryConjunction.OR);
4458
queryElements.add(innerGroup);
@@ -68,28 +82,18 @@ public QueryGroup<T> where(Class<? extends Model> leftTable, String left, String
6882
return where(left, operator, right);
6983
}
7084

71-
public QueryGroup<T> whereMorph(String name, Class<? extends Model> type) {
72-
return where(name + "Type", Repo.get(type).getInfo().getMorphType());
73-
}
74-
75-
public QueryGroup<T> whereMorph(String name, Class<? extends Model> type, Object id) {
76-
return whereMorph(name, type).where(name + "Id", id);
77-
}
78-
79-
public QueryGroup<T> whereMorph(String name, Model entity) {
80-
return whereMorph(name, entity.getClass(), Repo.get(entity.getClass()).getId(entity));
81-
}
82-
8385
public QueryGroup<T> where(Object left, Object right) {
8486
return where(left, "=", right);
8587
}
8688

89+
@Deprecated
8790
public QueryGroup<T> isNull(Object left) {
88-
return where(left, "IS NULL", null);
91+
return whereNull(left);
8992
}
9093

94+
@Deprecated
9195
public QueryGroup<T> notNull(Object left) {
92-
return where(left, "IS NOT NULL", null);
96+
return whereNotNull(left);
9397
}
9498

9599
public QueryGroup<T> whereNull(Object left) {
@@ -100,14 +104,6 @@ public QueryGroup<T> whereNotNull(Object left) {
100104
return where(left, "IS NOT NULL", null);
101105
}
102106

103-
public QueryGroup<T> lessThan(Object left, Object right) {
104-
return where(left, "<", right);
105-
}
106-
107-
public QueryGroup<T> greaterThan(Object left, Object right) {
108-
return where(left, ">", right);
109-
}
110-
111107
public QueryGroup<T> orWhere(Object left, String condition, Object right) {
112108
if(condition.equalsIgnoreCase("=") && right == null)
113109
return orIsNull(left);
@@ -147,20 +143,22 @@ public QueryGroup<T> orWhereMorph(String name, Model entity) {
147143
return orWhereMorph(name, entity.getClass(), Repo.get(entity.getClass()).getId(entity));
148144
}
149145

146+
@Deprecated
150147
public QueryGroup<T> orIsNull(Object left) {
151-
return orWhere(left, "IS NULL", null);
148+
return orWhereNull(left);
152149
}
153150

151+
@Deprecated
154152
public QueryGroup<T> orNotNull(Object left) {
155-
return orWhere(left, "IS NOT NULL", null);
153+
return orWhereNotNull(left);
156154
}
157155

158-
public QueryGroup<T> orLessThan(Object left, Object right) {
159-
return orWhere(left, "<", right);
156+
public QueryGroup<T> orWhereNull(Object left) {
157+
return orWhere(left, "IS NULL", null);
160158
}
161159

162-
public QueryGroup<T> orGreaterThan(Object left, Object right) {
163-
return orWhere(left, ">", right);
160+
public QueryGroup<T> orWhereNotNull(Object left) {
161+
return orWhere(left, "IS NOT NULL", null);
164162
}
165163

166164
public <M extends Model> QueryGroup<T> whereExists(Class<M> model, Function<Query<M>, Query<M>> consumer) {

0 commit comments

Comments
 (0)