Skip to content

Commit cacbf1b

Browse files
authored
Merge pull request #234 from jeffgbutler/master
Refactor the Criterion Renderer
2 parents b858ce7 + d27d018 commit cacbf1b

22 files changed

+189
-155
lines changed

src/main/java/org/mybatis/dynamic/sql/AbstractListValueCondition.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
public abstract class AbstractListValueCondition<T> implements VisitableCondition<T> {
2626
protected Collection<T> values;
2727
protected UnaryOperator<Stream<T>> valueStreamTransformer;
28-
protected boolean skipRenderingWhenEmpty = true;
28+
protected boolean renderWhenEmpty = false;
2929

3030
protected AbstractListValueCondition(Collection<T> values) {
3131
this(values, UnaryOperator.identity());
@@ -40,15 +40,16 @@ public final <R> Stream<R> mapValues(Function<T, R> mapper) {
4040
return valueStreamTransformer.apply(values.stream()).map(mapper);
4141
}
4242

43-
public boolean skipRenderingWhenEmpty() {
44-
return skipRenderingWhenEmpty;
43+
@Override
44+
public boolean shouldRender() {
45+
return !values.isEmpty() || renderWhenEmpty;
4546
}
46-
47+
4748
/**
4849
* Use with caution - this could cause the library to render invalid SQL like "where column in ()".
4950
*/
5051
protected void forceRenderingWhenEmpty() {
51-
skipRenderingWhenEmpty = false;
52+
renderWhenEmpty = true;
5253
}
5354

5455
@Override

src/main/java/org/mybatis/dynamic/sql/delete/DeleteDSL.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Copyright 2016-2019 the original author or authors.
2+
* Copyright 2016-2020 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
1919
import java.util.function.Function;
2020
import java.util.function.ToIntFunction;
2121

22+
import org.jetbrains.annotations.NotNull;
2223
import org.mybatis.dynamic.sql.BindableColumn;
2324
import org.mybatis.dynamic.sql.SqlCriterion;
2425
import org.mybatis.dynamic.sql.SqlTable;
@@ -61,6 +62,7 @@ public DeleteWhereBuilder applyWhere(WhereApplier whereApplier) {
6162
*
6263
* @return the model class
6364
*/
65+
@NotNull
6466
@Override
6567
public R build() {
6668
DeleteModel deleteModel = DeleteModel.withTable(table)
@@ -99,6 +101,7 @@ private DeleteWhereBuilder() {
99101
super();
100102
}
101103

104+
@NotNull
102105
@Override
103106
public R build() {
104107
return DeleteDSL.this.build();

src/main/java/org/mybatis/dynamic/sql/insert/BatchInsertDSL.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.Collection;
2121
import java.util.List;
2222

23+
import org.jetbrains.annotations.NotNull;
2324
import org.mybatis.dynamic.sql.SqlColumn;
2425
import org.mybatis.dynamic.sql.SqlTable;
2526
import org.mybatis.dynamic.sql.util.AbstractColumnMapping;
@@ -44,6 +45,7 @@ public <F> ColumnMappingFinisher<F> map(SqlColumn<F> column) {
4445
return new ColumnMappingFinisher<>(column);
4546
}
4647

48+
@NotNull
4749
@Override
4850
public BatchInsertModel<T> build() {
4951
return BatchInsertModel.withRecords(records)

src/main/java/org/mybatis/dynamic/sql/insert/GeneralInsertDSL.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.Objects;
2121
import java.util.function.Supplier;
2222

23+
import org.jetbrains.annotations.NotNull;
2324
import org.mybatis.dynamic.sql.SqlColumn;
2425
import org.mybatis.dynamic.sql.SqlTable;
2526
import org.mybatis.dynamic.sql.util.AbstractColumnMapping;
@@ -42,6 +43,7 @@ public <T> SetClauseFinisher<T> set(SqlColumn<T> column) {
4243
return new SetClauseFinisher<>(column);
4344
}
4445

46+
@NotNull
4547
@Override
4648
public GeneralInsertModel build() {
4749
return new GeneralInsertModel.Builder()

src/main/java/org/mybatis/dynamic/sql/insert/InsertDSL.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.List;
2020
import java.util.function.Supplier;
2121

22+
import org.jetbrains.annotations.NotNull;
2223
import org.mybatis.dynamic.sql.SqlColumn;
2324
import org.mybatis.dynamic.sql.SqlTable;
2425
import org.mybatis.dynamic.sql.util.AbstractColumnMapping;
@@ -44,6 +45,7 @@ public <F> ColumnMappingFinisher<F> map(SqlColumn<F> column) {
4445
return new ColumnMappingFinisher<>(column);
4546
}
4647

48+
@NotNull
4749
@Override
4850
public InsertModel<T> build() {
4951
return InsertModel.withRecord(record)

src/main/java/org/mybatis/dynamic/sql/insert/MultiRowInsertDSL.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.Collection;
2121
import java.util.List;
2222

23+
import org.jetbrains.annotations.NotNull;
2324
import org.mybatis.dynamic.sql.SqlColumn;
2425
import org.mybatis.dynamic.sql.SqlTable;
2526
import org.mybatis.dynamic.sql.util.AbstractColumnMapping;
@@ -44,6 +45,7 @@ public <F> ColumnMappingFinisher<F> map(SqlColumn<F> column) {
4445
return new ColumnMappingFinisher<>(column);
4546
}
4647

48+
@NotNull
4749
@Override
4850
public MultiRowInsertModel<T> build() {
4951
return MultiRowInsertModel.withRecords(records)

src/main/java/org/mybatis/dynamic/sql/select/CountDSL.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.Objects;
1919
import java.util.function.Function;
2020

21+
import org.jetbrains.annotations.NotNull;
2122
import org.mybatis.dynamic.sql.BasicColumn;
2223
import org.mybatis.dynamic.sql.BindableColumn;
2324
import org.mybatis.dynamic.sql.SqlBuilder;
@@ -64,6 +65,7 @@ public CountWhereBuilder applyWhere(WhereApplier whereApplier) {
6465
return whereBuilder.applyWhere(whereApplier);
6566
}
6667

68+
@NotNull
6769
@Override
6870
public R build() {
6971
return adapterFunction.apply(buildModel());
@@ -130,6 +132,7 @@ public class CountWhereBuilder extends AbstractWhereDSL<CountWhereBuilder>
130132
implements Buildable<R> {
131133
private <T> CountWhereBuilder() {}
132134

135+
@NotNull
133136
@Override
134137
public R build() {
135138
return CountDSL.this.build();

src/main/java/org/mybatis/dynamic/sql/select/QueryExpressionDSL.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.List;
2222
import java.util.Objects;
2323

24+
import org.jetbrains.annotations.NotNull;
2425
import org.mybatis.dynamic.sql.BasicColumn;
2526
import org.mybatis.dynamic.sql.BindableColumn;
2627
import org.mybatis.dynamic.sql.SortSpecification;
@@ -73,6 +74,7 @@ public QueryExpressionWhereBuilder applyWhere(WhereApplier whereApplier) {
7374
return whereBuilder.applyWhere(whereApplier);
7475
}
7576

77+
@NotNull
7678
@Override
7779
public R build() {
7880
return selectDSL.build();
@@ -258,6 +260,7 @@ public SelectDSL<R>.FetchFirstFinisher fetchFirst(long fetchFirstRows) {
258260
return QueryExpressionDSL.this.fetchFirst(fetchFirstRows);
259261
}
260262

263+
@NotNull
261264
@Override
262265
public R build() {
263266
return QueryExpressionDSL.this.build();
@@ -327,6 +330,7 @@ public JoinSpecificationFinisher(SqlTable table, BasicColumn joinColumn,
327330
addJoinSpecificationBuilder(joinSpecificationBuilder);
328331
}
329332

333+
@NotNull
330334
@Override
331335
public R build() {
332336
return QueryExpressionDSL.this.build();
@@ -421,6 +425,7 @@ public SelectDSL<R> orderBy(SortSpecification...columns) {
421425
return QueryExpressionDSL.this.orderBy(columns);
422426
}
423427

428+
@NotNull
424429
@Override
425430
public R build() {
426431
return QueryExpressionDSL.this.build();

src/main/java/org/mybatis/dynamic/sql/select/SelectDSL.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.function.Function;
2424
import java.util.stream.Collectors;
2525

26+
import org.jetbrains.annotations.NotNull;
2627
import org.mybatis.dynamic.sql.BasicColumn;
2728
import org.mybatis.dynamic.sql.SortSpecification;
2829
import org.mybatis.dynamic.sql.select.QueryExpressionDSL.FromGatherer;
@@ -157,6 +158,7 @@ public FetchFirstFinisher fetchFirst(long fetchFirstRows) {
157158
return new FetchFirstFinisher();
158159
}
159160

161+
@NotNull
160162
@Override
161163
public R build() {
162164
SelectModel selectModel = SelectModel.withQueryExpressions(buildModels())
@@ -186,13 +188,15 @@ public OffsetFinisher offset(long offset) {
186188
return new OffsetFinisher();
187189
}
188190

191+
@NotNull
189192
@Override
190193
public R build() {
191194
return SelectDSL.this.build();
192195
}
193196
}
194197

195198
public class OffsetFinisher implements Buildable<R> {
199+
@NotNull
196200
@Override
197201
public R build() {
198202
return SelectDSL.this.build();
@@ -205,6 +209,7 @@ public FetchFirstFinisher fetchFirst(long fetchFirstRows) {
205209
return new FetchFirstFinisher();
206210
}
207211

212+
@NotNull
208213
@Override
209214
public R build() {
210215
return SelectDSL.this.build();
@@ -218,6 +223,7 @@ public RowsOnlyFinisher rowsOnly() {
218223
}
219224

220225
public class RowsOnlyFinisher implements Buildable<R> {
226+
@NotNull
221227
@Override
222228
public R build() {
223229
return SelectDSL.this.build();

src/main/java/org/mybatis/dynamic/sql/update/UpdateDSL.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.function.Supplier;
2323
import java.util.function.ToIntFunction;
2424

25+
import org.jetbrains.annotations.NotNull;
2526
import org.mybatis.dynamic.sql.BasicColumn;
2627
import org.mybatis.dynamic.sql.BindableColumn;
2728
import org.mybatis.dynamic.sql.SqlColumn;
@@ -80,6 +81,7 @@ public UpdateWhereBuilder applyWhere(WhereApplier whereApplier) {
8081
*
8182
* @return the update model
8283
*/
84+
@NotNull
8385
@Override
8486
public R build() {
8587
UpdateModel updateModel = UpdateModel.withTable(table)
@@ -171,6 +173,7 @@ public UpdateWhereBuilder() {
171173
super();
172174
}
173175

176+
@NotNull
174177
@Override
175178
public R build() {
176179
return UpdateDSL.this.build();

0 commit comments

Comments
 (0)