Skip to content

Commit 1998441

Browse files
committed
Add better factory methods for all the builders
1 parent 47ca29f commit 1998441

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+278
-220
lines changed

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

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -118,45 +118,40 @@ static <T> WhereDSL where(BindableColumn<T> column, VisitableCondition<T> condit
118118

119119
// where condition connectors
120120
static <T> SqlCriterion<T> or(BindableColumn<T> column, VisitableCondition<T> condition) {
121-
return new SqlCriterion.Builder<T>()
121+
return SqlCriterion.withColumn(column)
122122
.withConnector("or") //$NON-NLS-1$
123-
.withColumn(column)
124123
.withCondition(condition)
125124
.build();
126125
}
127126

128127
static <T> SqlCriterion<T> or(BindableColumn<T> column, VisitableCondition<T> condition,
129128
SqlCriterion<?>...subCriteria) {
130-
return new SqlCriterion.Builder<T>()
129+
return SqlCriterion.withColumn(column)
131130
.withConnector("or") //$NON-NLS-1$
132-
.withColumn(column)
133131
.withCondition(condition)
134132
.withSubCriteria(Arrays.asList(subCriteria))
135133
.build();
136134
}
137135

138136
static <T> SqlCriterion<T> and(BindableColumn<T> column, VisitableCondition<T> condition) {
139-
return new SqlCriterion.Builder<T>()
137+
return SqlCriterion.withColumn(column)
140138
.withConnector("and") //$NON-NLS-1$
141-
.withColumn(column)
142139
.withCondition(condition)
143140
.build();
144141
}
145142

146143
static <T> SqlCriterion<T> and(BindableColumn<T> column, VisitableCondition<T> condition,
147144
SqlCriterion<?>...subCriteria) {
148-
return new SqlCriterion.Builder<T>()
145+
return SqlCriterion.withColumn(column)
149146
.withConnector("and") //$NON-NLS-1$
150-
.withColumn(column)
151147
.withCondition(condition)
152148
.withSubCriteria(Arrays.asList(subCriteria))
153149
.build();
154150
}
155151

156152
// join support
157153
static JoinCriterion and(BasicColumn joinColumn, JoinCondition joinCondition) {
158-
return new JoinCriterion.Builder()
159-
.withJoinColumn(joinColumn)
154+
return JoinCriterion.withJoinColumn(joinColumn)
160155
.withJoinCondition(joinCondition)
161156
.withConnector("and") //$NON-NLS-1$
162157
.build();

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,10 @@ private String applyTableAlias(String tableAlias) {
100100
return tableAlias + "." + name(); //$NON-NLS-1$
101101
}
102102

103+
public static Builder withName(String name) {
104+
return new Builder().withName(name);
105+
}
106+
103107
public static class Builder {
104108
private SqlTable table;
105109
private String name;

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ public boolean hasSubCriteria() {
5555
public <R> Stream<R> mapSubCriteria(Function<SqlCriterion<?>, R> mapper) {
5656
return subCriteria.stream().map(mapper);
5757
}
58+
59+
public static <T> Builder<T> withColumn(BindableColumn<T> column) {
60+
return new Builder<T>().withColumn(column);
61+
}
5862

5963
public static class Builder<T> {
6064
private String connector;

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,14 @@ public String name() {
3131
}
3232

3333
public <T> SqlColumn<T> column(String name, JDBCType jdbcType) {
34-
return new SqlColumn.Builder()
35-
.withName(name)
34+
return SqlColumn.withName(name)
3635
.withJdbcType(jdbcType)
3736
.withTable(this)
3837
.build();
3938
}
4039

4140
public <T> SqlColumn<T> column(String name, JDBCType jdbcType, String typeHandler) {
42-
return new SqlColumn.Builder()
43-
.withName(name)
41+
return SqlColumn.withName(name)
4442
.withJdbcType(jdbcType)
4543
.withTypeHandler(typeHandler)
4644
.withTable(this)

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ public <T> DeleteWhereBuilder where(BindableColumn<T> column, VisitableCondition
5151
* @return the model class
5252
*/
5353
public R build() {
54-
DeleteModel deleteModel = new DeleteModel.Builder()
55-
.withTable(table)
56-
.build();
54+
DeleteModel deleteModel = DeleteModel.withTable(table).build();
5755
return adapterFunction.apply(deleteModel);
5856
}
5957

@@ -82,8 +80,7 @@ private <T> DeleteWhereBuilder(BindableColumn<T> column, VisitableCondition<T> c
8280
}
8381

8482
public R build() {
85-
DeleteModel deleteModel = new DeleteModel.Builder()
86-
.withTable(table)
83+
DeleteModel deleteModel = DeleteModel.withTable(table)
8784
.withWhereModel(buildWhereModel())
8885
.build();
8986
return adapterFunction.apply(deleteModel);

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,16 @@ public Optional<WhereModel> whereModel() {
4242
}
4343

4444
public DeleteStatement render(RenderingStrategy renderingStrategy) {
45-
return new DeleteRenderer.Builder()
46-
.withDeleteModel(this)
45+
return DeleteRenderer.withDeleteModel(this)
4746
.withRenderingStrategy(renderingStrategy)
4847
.build()
4948
.render();
5049
}
5150

51+
public static Builder withTable(SqlTable table) {
52+
return new Builder().withTable(table);
53+
}
54+
5255
public static class Builder {
5356
private SqlTable table;
5457
private WhereModel whereModel;

src/main/java/org/mybatis/dynamic/sql/delete/render/DeleteRenderer.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ private DeleteRenderer(Builder builder) {
3232
}
3333

3434
public DeleteStatement render() {
35-
return new DeleteStatement.Builder()
36-
.withTableName(deleteModel.table().name())
35+
return DeleteStatement.withTableName(deleteModel.table().name())
3736
.withWhereClause(deleteModel.whereModel().map(this::renderWhereModel))
3837
.build();
3938
}
@@ -42,6 +41,10 @@ private WhereClauseAndParameters renderWhereModel(WhereModel whereModel) {
4241
return whereModel.render(renderingStrategy);
4342
}
4443

44+
public static Builder withDeleteModel(DeleteModel deleteModel) {
45+
return new Builder().withDeleteModel(deleteModel);
46+
}
47+
4548
public static class Builder {
4649
private DeleteModel deleteModel;
4750
private RenderingStrategy renderingStrategy;

src/main/java/org/mybatis/dynamic/sql/delete/render/DeleteStatement.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ public String getDeleteStatement() {
4444
+ spaceBefore(whereClauseAndParameters.map(WhereClauseAndParameters::whereClause));
4545
}
4646

47+
public static Builder withTableName(String tableName) {
48+
return new Builder().withTableName(tableName);
49+
}
50+
4751
public static class Builder {
4852
private String tableName;
4953
private Optional<WhereClauseAndParameters> whereClauseAndParameters = Optional.empty();

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@ public <F> BatchColumnMappingFinisher<F> map(SqlColumn<F> column) {
4343
}
4444

4545
public BatchInsertModel<T> build() {
46-
return new BatchInsertModel.Builder<T>()
46+
return BatchInsertModel.withRecords(records)
4747
.withTable(table)
48-
.withRecords(records)
4948
.withColumnMappings(columnMappings)
5049
.build();
5150
}

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,16 @@ public SqlTable table() {
5252
}
5353

5454
public BatchInsert<T> render(RenderingStrategy renderingStrategy) {
55-
return new BatchInsertRenderer.Builder<T>()
56-
.withBatchInsertModel(this)
55+
return BatchInsertRenderer.withBatchInsertModel(this)
5756
.withRenderingStrategy(renderingStrategy)
5857
.build()
5958
.render();
6059
}
6160

61+
public static <T> Builder<T> withRecords(List<T> records) {
62+
return new Builder<T>().withRecords(records);
63+
}
64+
6265
public static class Builder<T> {
6366
private SqlTable table;
6467
private List<T> records = new ArrayList<>();

0 commit comments

Comments
 (0)