Skip to content

Commit 13157a5

Browse files
committed
Use consistent build pattern
1 parent f863db4 commit 13157a5

File tree

4 files changed

+25
-41
lines changed

4 files changed

+25
-41
lines changed

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,14 @@ public DeleteDSL<R> orderBy(Collection<? extends SortSpecification> columns) {
7878
@NotNull
7979
@Override
8080
public R build() {
81-
DeleteModel.Builder deleteModelBuilder = DeleteModel.withTable(table)
81+
DeleteModel deleteModel = DeleteModel.withTable(table)
8282
.withTableAlias(tableAlias)
8383
.withLimit(limit)
84-
.withOrderByModel(orderByModel);
85-
if (whereBuilder != null) {
86-
deleteModelBuilder.withWhereModel(whereBuilder.buildWhereModel());
87-
}
84+
.withOrderByModel(orderByModel)
85+
.withWhereModel(whereBuilder == null ? null : whereBuilder.buildWhereModel())
86+
.build();
8887

89-
return adapterFunction.apply(deleteModelBuilder.build());
88+
return adapterFunction.apply(deleteModel);
9089
}
9190

9291
@Override

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

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.mybatis.dynamic.sql.SqlTable;
2626
import org.mybatis.dynamic.sql.configuration.StatementConfiguration;
2727
import org.mybatis.dynamic.sql.util.Buildable;
28+
import org.mybatis.dynamic.sql.util.Utilities;
2829
import org.mybatis.dynamic.sql.where.AbstractWhereFinisher;
2930
import org.mybatis.dynamic.sql.where.WhereModel;
3031

@@ -33,7 +34,7 @@
3334
* clauses, but not the other parts of a select (group by, order by, etc.) Count queries always return
3435
* a long. If these restrictions are not acceptable, then use the Select DSL for an unrestricted select statement.
3536
*
36-
* @param <R> the type of model built by this Builder. Typically SelectModel.
37+
* @param <R> the type of model built by this Builder. Typically, SelectModel.
3738
*
3839
* @author Jeff Butler
3940
*/
@@ -53,9 +54,7 @@ private CountDSL(BasicColumn countColumn, SqlTable table, Function<SelectModel,
5354

5455
@Override
5556
public CountWhereBuilder where() {
56-
if (whereBuilder == null) {
57-
whereBuilder = new CountWhereBuilder();
58-
}
57+
whereBuilder = Utilities.buildIfNecessary(whereBuilder, CountWhereBuilder::new);
5958
return whereBuilder;
6059
}
6160

@@ -72,19 +71,16 @@ public CountDSL<R> configureStatement(Consumer<StatementConfiguration> consumer)
7271
}
7372

7473
private SelectModel buildModel() {
75-
QueryExpressionModel.Builder b = new QueryExpressionModel.Builder()
74+
QueryExpressionModel queryExpressionModel = new QueryExpressionModel.Builder()
7675
.withSelectColumn(countColumn)
7776
.withTable(table())
78-
.withTableAliases(tableAliases());
79-
80-
if (whereBuilder != null) {
81-
b.withWhereModel(whereBuilder.buildWhereModel());
82-
}
83-
84-
buildJoinModel().ifPresent(b::withJoinModel);
77+
.withTableAliases(tableAliases())
78+
.withJoinModel(buildJoinModel().orElse(null))
79+
.withWhereModel(whereBuilder == null ? null : whereBuilder.buildWhereModel())
80+
.build();
8581

8682
return new SelectModel.Builder()
87-
.withQueryExpression(b.build())
83+
.withQueryExpression(queryExpressionModel)
8884
.build();
8985
}
9086

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

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,7 @@ public QueryExpressionDSL<R> configureStatement(Consumer<StatementConfiguration>
8585
* @return The having builder
8686
*/
8787
protected QueryExpressionHavingBuilder having() {
88-
if (havingBuilder == null) {
89-
havingBuilder = new QueryExpressionHavingBuilder();
90-
}
88+
havingBuilder = Utilities.buildIfNecessary(havingBuilder, QueryExpressionHavingBuilder::new);
9189
return havingBuilder;
9290
}
9391

@@ -185,23 +183,16 @@ public UnionBuilder unionAll() {
185183
}
186184

187185
protected QueryExpressionModel buildModel() {
188-
QueryExpressionModel.Builder builder = QueryExpressionModel.withSelectList(selectList)
186+
return QueryExpressionModel.withSelectList(selectList)
189187
.withConnector(connector)
190188
.withTable(table())
191189
.isDistinct(isDistinct)
192190
.withTableAliases(tableAliases())
193191
.withJoinModel(buildJoinModel().orElse(null))
194-
.withGroupByModel(groupByModel);
195-
196-
if (whereBuilder != null) {
197-
builder.withWhereModel(whereBuilder.buildWhereModel());
198-
}
199-
200-
if (havingBuilder != null) {
201-
builder.withHavingModel(havingBuilder.buildHavingModel());
202-
}
203-
204-
return builder.build();
192+
.withGroupByModel(groupByModel)
193+
.withWhereModel(whereBuilder == null ? null : whereBuilder.buildWhereModel())
194+
.withHavingModel(havingBuilder == null ? null : havingBuilder.buildHavingModel())
195+
.build();
205196
}
206197

207198
public SelectDSL<R>.LimitFinisher limit(long limit) {

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,17 +98,15 @@ public UpdateDSL<R> orderBy(Collection<? extends SortSpecification> columns) {
9898
@NotNull
9999
@Override
100100
public R build() {
101-
UpdateModel.Builder updateModelBuilder = UpdateModel.withTable(table)
101+
UpdateModel updateModel = UpdateModel.withTable(table)
102102
.withTableAlias(tableAlias)
103103
.withColumnMappings(columnMappings)
104104
.withLimit(limit)
105-
.withOrderByModel(orderByModel);
105+
.withOrderByModel(orderByModel)
106+
.withWhereModel(whereBuilder == null ? null : whereBuilder.buildWhereModel())
107+
.build();
106108

107-
if (whereBuilder != null) {
108-
updateModelBuilder.withWhereModel(whereBuilder.buildWhereModel());
109-
}
110-
111-
return adapterFunction.apply(updateModelBuilder.build());
109+
return adapterFunction.apply(updateModel);
112110
}
113111

114112
@Override

0 commit comments

Comments
 (0)