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

+5-10
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

+4
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

+4
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

+2-4
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

+2-5
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

+5-2
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

+5-2
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

+4
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

+1-2
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

+5-2
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<>();

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@ public <F> ColumnMappingFinisher<F> map(SqlColumn<F> column) {
4343
}
4444

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

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

+5-2
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,16 @@ public SqlTable table() {
5151
}
5252

5353
public InsertStatement<T> render(RenderingStrategy renderingStrategy) {
54-
return new InsertRenderer.Builder<T>()
55-
.withInsertModel(this)
54+
return InsertRenderer.withInsertModel(this)
5655
.withRenderingStrategy(renderingStrategy)
5756
.build()
5857
.render();
5958
}
6059

60+
public static <T> Builder<T> withRecord(T record) {
61+
return new Builder<T>().withRecord(record);
62+
}
63+
6164
public static class Builder<T> {
6265
private SqlTable table;
6366
private T record;

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ private InsertSelectDSL(SqlTable table, SelectModel selectModel) {
4343
}
4444

4545
public InsertSelectModel build() {
46-
return new InsertSelectModel.Builder()
47-
.withTable(table)
46+
return InsertSelectModel.withTable(table)
4847
.withColumnList(columnList)
4948
.withSelectModel(selectModel)
5049
.build();

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

+5-2
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,16 @@ public Optional<InsertColumnListModel> columnList() {
4848
}
4949

5050
public InsertSelectStatement render(RenderingStrategy renderingStrategy) {
51-
return new InsertSelectRenderer.Builder()
52-
.withInsertSelectModel(this)
51+
return InsertSelectRenderer.withInsertSelectModel(this)
5352
.withRenderingStrategy(renderingStrategy)
5453
.build()
5554
.render();
5655
}
5756

57+
public static Builder withTable(SqlTable table) {
58+
return new Builder().withTable(table);
59+
}
60+
5861
public static class Builder {
5962
private SqlTable table;
6063
private Optional<InsertColumnListModel> columnList = Optional.empty();

src/main/java/org/mybatis/dynamic/sql/insert/render/BatchInsert.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,10 @@ public List<InsertStatement<T>> insertStatements() {
4848
}
4949

5050
private InsertStatement<T> toInsertStatement(T record) {
51-
return new InsertStatement.Builder<T>()
51+
return InsertStatement.withRecord(record)
5252
.withTableName(tableName)
5353
.withColumnsPhrase(columnsPhrase)
5454
.withValuesPhrase(valuesPhrase)
55-
.withRecord(record)
5655
.build();
5756
}
5857

@@ -68,6 +67,10 @@ public String getInsertStatementSQL() {
6867
+ spaceBefore(valuesPhrase);
6968
}
7069

70+
public static <T> Builder<T> withRecords(List<T> records) {
71+
return new Builder<T>().withRecords(records);
72+
}
73+
7174
public static class Builder<T> {
7275
private String tableName;
7376
private String columnsPhrase;

src/main/java/org/mybatis/dynamic/sql/insert/render/BatchInsertRenderer.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,10 @@ public BatchInsert<T> render() {
3636
ValuePhraseVisitor visitor = new ValuePhraseVisitor(renderingStrategy);
3737
FieldAndValueCollector<T> collector = model.mapColumnMappings(toFieldAndValue(visitor))
3838
.collect(FieldAndValueCollector.collect());
39-
return new BatchInsert.Builder<T>()
39+
return BatchInsert.withRecords(model.records())
4040
.withTableName(model.table().name())
4141
.withColumnsPhrase(collector.columnsPhrase())
4242
.withValuesPhrase(collector.valuesPhrase())
43-
.withRecords(model.records())
4443
.build();
4544
}
4645

@@ -52,6 +51,10 @@ private FieldAndValue toFieldAndValue(ValuePhraseVisitor visitor, InsertMapping
5251
return insertMapping.accept(visitor);
5352
}
5453

54+
public static <T> Builder<T> withBatchInsertModel(BatchInsertModel<T> model) {
55+
return new Builder<T>().withBatchInsertModel(model);
56+
}
57+
5558
public static class Builder<T> {
5659
private BatchInsertModel<T> model;
5760
private RenderingStrategy renderingStrategy;

src/main/java/org/mybatis/dynamic/sql/insert/render/FieldAndValue.java

+4
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ public String valuePhrase() {
3434
return valuePhrase;
3535
}
3636

37+
public static Builder withFieldName(String fieldName) {
38+
return new Builder().withFieldName(fieldName);
39+
}
40+
3741
public static class Builder {
3842
private String fieldName;
3943
private String valuePhrase;

src/main/java/org/mybatis/dynamic/sql/insert/render/InsertRenderer.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,10 @@ public InsertStatement<T> render() {
3636
ValuePhraseVisitor visitor = new ValuePhraseVisitor(renderingStrategy);
3737
FieldAndValueCollector<T> collector = model.mapColumnMappings(toFieldAndValue(visitor))
3838
.collect(FieldAndValueCollector.collect());
39-
return new InsertStatement.Builder<T>()
39+
return InsertStatement.withRecord(model.record())
4040
.withTableName(model.table().name())
4141
.withColumnsPhrase(collector.columnsPhrase())
4242
.withValuesPhrase(collector.valuesPhrase())
43-
.withRecord(model.record())
4443
.build();
4544
}
4645

@@ -52,6 +51,10 @@ private FieldAndValue toFieldAndValue(ValuePhraseVisitor visitor, InsertMapping
5251
return insertMapping.accept(visitor);
5352
}
5453

54+
public static <T> Builder<T> withInsertModel(InsertModel<T> model) {
55+
return new Builder<T>().withInsertModel(model);
56+
}
57+
5558
public static class Builder<T> {
5659
private InsertModel<T> model;
5760
private RenderingStrategy renderingStrategy;

src/main/java/org/mybatis/dynamic/sql/insert/render/InsertSelectRenderer.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ private InsertSelectRenderer(Builder builder) {
3838
public InsertSelectStatement render() {
3939
SelectStatement selectStatement = model.selectModel().render(renderingStrategy);
4040

41-
return new InsertSelectStatement.Builder()
42-
.withTableName(model.table().name())
41+
return InsertSelectStatement.withTableName(model.table().name())
4342
.withColumnsPhrase(calculateColumnsPhrase())
4443
.withSelectStatement(selectStatement.getSelectStatement())
4544
.withParameters(selectStatement.getParameters())
@@ -56,6 +55,10 @@ private String calculateColumnsPhrase(InsertColumnListModel columnList) {
5655
.collect(Collectors.joining(", ", "(", ")")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
5756
}
5857

58+
public static Builder withInsertSelectModel(InsertSelectModel model) {
59+
return new Builder().withInsertSelectModel(model);
60+
}
61+
5962
public static class Builder {
6063
private InsertSelectModel model;
6164
private RenderingStrategy renderingStrategy;

src/main/java/org/mybatis/dynamic/sql/insert/render/InsertSelectStatement.java

+4
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ public Map<String, Object> getParameters() {
4646
return parameters;
4747
}
4848

49+
public static Builder withTableName(String tableName) {
50+
return new Builder().withTableName(tableName);
51+
}
52+
4953
public static class Builder {
5054
private String tableName;
5155
private Optional<String> columnsPhrase;

src/main/java/org/mybatis/dynamic/sql/insert/render/InsertStatement.java

+4
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ public String getInsertStatement() {
4343
+ spaceBefore(valuesPhrase);
4444
}
4545

46+
public static <T> Builder<T> withRecord(T record) {
47+
return new Builder<T>().withRecord(record);
48+
}
49+
4650
public static class Builder<T> {
4751
private String tableName;
4852
private String columnsPhrase;

0 commit comments

Comments
 (0)