Skip to content

Commit d8f631b

Browse files
committed
Simplify renderer factory
1 parent 283f0a5 commit d8f631b

File tree

12 files changed

+37
-61
lines changed

12 files changed

+37
-61
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,13 @@ public Optional<OrderByModel> orderByModel() {
6565
return Optional.ofNullable(orderByModel);
6666
}
6767

68+
public StatementConfiguration statementConfiguration() {
69+
return statementConfiguration;
70+
}
71+
6872
@NotNull
6973
public DeleteStatementProvider render(RenderingStrategy renderingStrategy) {
70-
return RendererFactory.createDeleteRenderer(this, statementConfiguration)
74+
return RendererFactory.createDeleteRenderer(this)
7175
.render(renderingStrategy);
7276
}
7377

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

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
import org.mybatis.dynamic.sql.common.OrderByModel;
2323
import org.mybatis.dynamic.sql.common.OrderByRenderer;
24-
import org.mybatis.dynamic.sql.configuration.StatementConfiguration;
2524
import org.mybatis.dynamic.sql.delete.DeleteModel;
2625
import org.mybatis.dynamic.sql.render.ExplicitTableAliasCalculator;
2726
import org.mybatis.dynamic.sql.render.RenderedParameterInfo;
@@ -44,7 +43,7 @@ private DeleteRenderer(Builder builder) {
4443
renderingContext = RenderingContext
4544
.withRenderingStrategy(Objects.requireNonNull(builder.renderingStrategy))
4645
.withTableAliasCalculator(tableAliasCalculator)
47-
.withStatementConfiguration(builder.statementConfiguration)
46+
.withStatementConfiguration(deleteModel.statementConfiguration())
4847
.build();
4948
}
5049

@@ -106,7 +105,6 @@ public static Builder withDeleteModel(DeleteModel deleteModel) {
106105
public static class Builder {
107106
private DeleteModel deleteModel;
108107
private RenderingStrategy renderingStrategy;
109-
private StatementConfiguration statementConfiguration;
110108

111109
public Builder withDeleteModel(DeleteModel deleteModel) {
112110
this.deleteModel = deleteModel;
@@ -118,11 +116,6 @@ public Builder withRenderingStrategy(RenderingStrategy renderingStrategy) {
118116
return this;
119117
}
120118

121-
public Builder withStatementConfiguration(StatementConfiguration statementConfiguration) {
122-
this.statementConfiguration = statementConfiguration;
123-
return this;
124-
}
125-
126119
public DeleteRenderer build() {
127120
return new DeleteRenderer(this);
128121
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,13 @@ public SqlTable table() {
5050
return table;
5151
}
5252

53+
public StatementConfiguration statementConfiguration() {
54+
return statementConfiguration;
55+
}
56+
5357
@NotNull
5458
public GeneralInsertStatementProvider render(RenderingStrategy renderingStrategy) {
55-
return RendererFactory.createGeneralInsertRenderer(this, statementConfiguration)
59+
return RendererFactory.createGeneralInsertRenderer(this)
5660
.render(renderingStrategy);
5761
}
5862

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,13 @@ public Optional<InsertColumnListModel> columnList() {
5151
return Optional.ofNullable(columnList);
5252
}
5353

54+
public StatementConfiguration statementConfiguration() {
55+
return statementConfiguration;
56+
}
57+
5458
@NotNull
5559
public InsertSelectStatementProvider render(RenderingStrategy renderingStrategy) {
56-
return RendererFactory.createInsertSelectRenderer(this, statementConfiguration)
60+
return RendererFactory.createInsertSelectRenderer(this)
5761
.render(renderingStrategy);
5862
}
5963

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

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.util.Objects;
1919
import java.util.Optional;
2020

21-
import org.mybatis.dynamic.sql.configuration.StatementConfiguration;
2221
import org.mybatis.dynamic.sql.insert.GeneralInsertModel;
2322
import org.mybatis.dynamic.sql.render.RenderingContext;
2423
import org.mybatis.dynamic.sql.render.RenderingStrategy;
@@ -32,7 +31,7 @@ public class GeneralInsertRenderer {
3231
private GeneralInsertRenderer(Builder builder) {
3332
model = Objects.requireNonNull(builder.model);
3433
RenderingContext renderingContext = RenderingContext.withRenderingStrategy(builder.renderingStrategy)
35-
.withStatementConfiguration(builder.statementConfiguration)
34+
.withStatementConfiguration(model.statementConfiguration())
3635
.build();
3736
visitor = new GeneralInsertValuePhraseVisitor(renderingContext);
3837
}
@@ -59,7 +58,6 @@ public static Builder withInsertModel(GeneralInsertModel model) {
5958
public static class Builder {
6059
private GeneralInsertModel model;
6160
private RenderingStrategy renderingStrategy;
62-
private StatementConfiguration statementConfiguration;
6361

6462
public Builder withInsertModel(GeneralInsertModel model) {
6563
this.model = model;
@@ -71,11 +69,6 @@ public Builder withRenderingStrategy(RenderingStrategy renderingStrategy) {
7169
return this;
7270
}
7371

74-
public Builder withStatementConfiguration(StatementConfiguration statementConfiguration) {
75-
this.statementConfiguration = statementConfiguration;
76-
return this;
77-
}
78-
7972
public GeneralInsertRenderer build() {
8073
return new GeneralInsertRenderer(this);
8174
}

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

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.util.stream.Collectors;
2323

2424
import org.mybatis.dynamic.sql.SqlColumn;
25-
import org.mybatis.dynamic.sql.configuration.StatementConfiguration;
2625
import org.mybatis.dynamic.sql.insert.InsertColumnListModel;
2726
import org.mybatis.dynamic.sql.insert.InsertSelectModel;
2827
import org.mybatis.dynamic.sql.render.RenderingContext;
@@ -38,7 +37,7 @@ public class InsertSelectRenderer {
3837
private InsertSelectRenderer(Builder builder) {
3938
model = Objects.requireNonNull(builder.model);
4039
renderingContext = RenderingContext.withRenderingStrategy(builder.renderingStrategy)
41-
.withStatementConfiguration(builder.statementConfiguration)
40+
.withStatementConfiguration(model.statementConfiguration())
4241
.build();
4342
}
4443

@@ -75,7 +74,6 @@ public static Builder withInsertSelectModel(InsertSelectModel model) {
7574
public static class Builder {
7675
private InsertSelectModel model;
7776
private RenderingStrategy renderingStrategy;
78-
private StatementConfiguration statementConfiguration;
7977

8078
public Builder withInsertSelectModel(InsertSelectModel model) {
8179
this.model = model;
@@ -87,11 +85,6 @@ public Builder withRenderingStrategy(RenderingStrategy renderingStrategy) {
8785
return this;
8886
}
8987

90-
public Builder withStatementConfiguration(StatementConfiguration statementConfiguration) {
91-
this.statementConfiguration = statementConfiguration;
92-
return this;
93-
}
94-
9588
public InsertSelectRenderer build() {
9689
return new InsertSelectRenderer(this);
9790
}

src/main/java/org/mybatis/dynamic/sql/render/RendererFactory.java

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package org.mybatis.dynamic.sql.render;
1717

18-
import org.mybatis.dynamic.sql.configuration.StatementConfiguration;
1918
import org.mybatis.dynamic.sql.delete.DeleteModel;
2019
import org.mybatis.dynamic.sql.delete.render.DeleteRenderer;
2120
import org.mybatis.dynamic.sql.delete.render.DeleteStatementProvider;
@@ -45,10 +44,8 @@
4544
import org.mybatis.dynamic.sql.util.FragmentAndParameters;
4645

4746
public interface RendererFactory {
48-
static Renderer<RenderingStrategy, DeleteStatementProvider> createDeleteRenderer(DeleteModel deleteModel,
49-
StatementConfiguration statementConfiguration) {
47+
static Renderer<RenderingStrategy, DeleteStatementProvider> createDeleteRenderer(DeleteModel deleteModel) {
5048
return renderingStrategy -> DeleteRenderer.withDeleteModel(deleteModel)
51-
.withStatementConfiguration(statementConfiguration)
5249
.withRenderingStrategy(renderingStrategy)
5350
.build()
5451
.render();
@@ -63,9 +60,8 @@ static <T> Renderer<RenderingStrategy, BatchInsert<T>> createBatchInsertRenderer
6360
}
6461

6562
static Renderer<RenderingStrategy, GeneralInsertStatementProvider> createGeneralInsertRenderer(
66-
GeneralInsertModel generalInsertModel, StatementConfiguration statementConfiguration) {
63+
GeneralInsertModel generalInsertModel) {
6764
return renderingStrategy -> GeneralInsertRenderer.withInsertModel(generalInsertModel)
68-
.withStatementConfiguration(statementConfiguration)
6965
.withRenderingStrategy(renderingStrategy)
7066
.build()
7167
.render();
@@ -80,9 +76,8 @@ static <T> Renderer<RenderingStrategy, InsertStatementProvider<T>> createInsertR
8076
}
8177

8278
static Renderer<RenderingStrategy, InsertSelectStatementProvider> createInsertSelectRenderer(
83-
InsertSelectModel insertSelectModel, StatementConfiguration statementConfiguration) {
79+
InsertSelectModel insertSelectModel) {
8480
return renderingStrategy -> InsertSelectRenderer.withInsertSelectModel(insertSelectModel)
85-
.withStatementConfiguration(statementConfiguration)
8681
.withRenderingStrategy(renderingStrategy)
8782
.build()
8883
.render();
@@ -97,27 +92,23 @@ static <T> Renderer<RenderingStrategy, MultiRowInsertStatementProvider<T>> creat
9792
}
9893

9994
static Renderer<RenderingStrategy, SelectStatementProvider> createMultiSelectRenderer(
100-
MultiSelectModel multiSelectModel, StatementConfiguration statementConfiguration) {
95+
MultiSelectModel multiSelectModel) {
10196
return renderingStrategy -> new MultiSelectRenderer.Builder()
10297
.withMultiSelectModel(multiSelectModel)
103-
.withStatementConfiguration(statementConfiguration)
10498
.withRenderingStrategy(renderingStrategy)
10599
.build()
106100
.render();
107101
}
108102

109-
static Renderer<RenderingContext, FragmentAndParameters> createSelectRenderer(
110-
SelectModel selectModel) {
103+
static Renderer<RenderingContext, FragmentAndParameters> createSelectRenderer(SelectModel selectModel) {
111104
return renderingContext -> SelectRenderer.withSelectModel(selectModel)
112105
.withRenderingContext(renderingContext)
113106
.build()
114107
.render();
115108
}
116109

117-
static Renderer<RenderingStrategy, UpdateStatementProvider> createUpdateRenderer(
118-
UpdateModel updateModel, StatementConfiguration statementConfiguration) {
110+
static Renderer<RenderingStrategy, UpdateStatementProvider> createUpdateRenderer(UpdateModel updateModel) {
119111
return renderingStrategy -> UpdateRenderer.withUpdateModel(updateModel)
120-
.withStatementConfiguration(statementConfiguration)
121112
.withRenderingStrategy(renderingStrategy)
122113
.build()
123114
.render();

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ public Optional<PagingModel> pagingModel() {
4040
return Optional.ofNullable(pagingModel);
4141
}
4242

43+
public StatementConfiguration statementConfiguration() {
44+
return statementConfiguration;
45+
}
46+
4347
public abstract static class AbstractBuilder<T extends AbstractBuilder<T>> {
4448
private OrderByModel orderByModel;
4549
private PagingModel pagingModel;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public Stream<UnionQuery> unionQueries() {
4747

4848
@NotNull
4949
public SelectStatementProvider render(RenderingStrategy renderingStrategy) {
50-
return RendererFactory.createMultiSelectRenderer(this, statementConfiguration)
50+
return RendererFactory.createMultiSelectRenderer(this)
5151
.render(renderingStrategy);
5252
}
5353

src/main/java/org/mybatis/dynamic/sql/select/render/MultiSelectRenderer.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
import org.mybatis.dynamic.sql.common.OrderByModel;
2323
import org.mybatis.dynamic.sql.common.OrderByRenderer;
24-
import org.mybatis.dynamic.sql.configuration.StatementConfiguration;
2524
import org.mybatis.dynamic.sql.render.RenderingContext;
2625
import org.mybatis.dynamic.sql.render.RenderingStrategy;
2726
import org.mybatis.dynamic.sql.select.MultiSelectModel;
@@ -36,11 +35,11 @@ public class MultiSelectRenderer {
3635
private final RenderingContext renderingContext;
3736

3837
private MultiSelectRenderer(Builder builder) {
38+
multiSelectModel = Objects.requireNonNull(builder.multiSelectModel);
3939
renderingContext = RenderingContext
4040
.withRenderingStrategy(builder.renderingStrategy)
41-
.withStatementConfiguration(builder.statementConfiguration)
41+
.withStatementConfiguration(multiSelectModel.statementConfiguration())
4242
.build();
43-
multiSelectModel = Objects.requireNonNull(builder.multiSelectModel);
4443
}
4544

4645
public SelectStatementProvider render() {
@@ -97,7 +96,6 @@ private FragmentAndParameters renderPagingModel(PagingModel pagingModel) {
9796
public static class Builder {
9897
private RenderingStrategy renderingStrategy;
9998
private MultiSelectModel multiSelectModel;
100-
private StatementConfiguration statementConfiguration;
10199

102100
public Builder withRenderingStrategy(RenderingStrategy renderingStrategy) {
103101
this.renderingStrategy = renderingStrategy;
@@ -109,11 +107,6 @@ public Builder withMultiSelectModel(MultiSelectModel multiSelectModel) {
109107
return this;
110108
}
111109

112-
public Builder withStatementConfiguration(StatementConfiguration statementConfiguration) {
113-
this.statementConfiguration = statementConfiguration;
114-
return this;
115-
}
116-
117110
public MultiSelectRenderer build() {
118111
return new MultiSelectRenderer(this);
119112
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,13 @@ public Optional<OrderByModel> orderByModel() {
7777
return Optional.ofNullable(orderByModel);
7878
}
7979

80+
public StatementConfiguration statementConfiguration() {
81+
return statementConfiguration;
82+
}
83+
8084
@NotNull
8185
public UpdateStatementProvider render(RenderingStrategy renderingStrategy) {
82-
return RendererFactory.createUpdateRenderer(this, statementConfiguration)
86+
return RendererFactory.createUpdateRenderer(this)
8387
.render(renderingStrategy);
8488
}
8589

src/main/java/org/mybatis/dynamic/sql/update/render/UpdateRenderer.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222

2323
import org.mybatis.dynamic.sql.common.OrderByModel;
2424
import org.mybatis.dynamic.sql.common.OrderByRenderer;
25-
import org.mybatis.dynamic.sql.configuration.StatementConfiguration;
2625
import org.mybatis.dynamic.sql.render.ExplicitTableAliasCalculator;
2726
import org.mybatis.dynamic.sql.render.RenderedParameterInfo;
2827
import org.mybatis.dynamic.sql.render.RenderingContext;
@@ -47,7 +46,7 @@ private UpdateRenderer(Builder builder) {
4746
renderingContext = RenderingContext
4847
.withRenderingStrategy(Objects.requireNonNull(builder.renderingStrategy))
4948
.withTableAliasCalculator(tableAliasCalculator)
50-
.withStatementConfiguration(builder.statementConfiguration)
49+
.withStatementConfiguration(updateModel.statementConfiguration())
5150
.build();
5251
visitor = new SetPhraseVisitor(renderingContext);
5352
}
@@ -131,7 +130,6 @@ public static Builder withUpdateModel(UpdateModel updateModel) {
131130
public static class Builder {
132131
private UpdateModel updateModel;
133132
private RenderingStrategy renderingStrategy;
134-
private StatementConfiguration statementConfiguration;
135133

136134
public Builder withUpdateModel(UpdateModel updateModel) {
137135
this.updateModel = updateModel;
@@ -143,11 +141,6 @@ public Builder withRenderingStrategy(RenderingStrategy renderingStrategy) {
143141
return this;
144142
}
145143

146-
public Builder withStatementConfiguration(StatementConfiguration statementConfiguration) {
147-
this.statementConfiguration = statementConfiguration;
148-
return this;
149-
}
150-
151144
public UpdateRenderer build() {
152145
return new UpdateRenderer(this);
153146
}

0 commit comments

Comments
 (0)