Skip to content

Commit 7dd6cc0

Browse files
committed
Code Polishing
1 parent 57fb7a1 commit 7dd6cc0

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

src/main/java/org/mybatis/dynamic/sql/where/render/CriterionRenderer.java

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,12 @@ private CriterionRenderer(Builder<T> builder) {
4343
}
4444

4545
public Optional<RenderedCriterion> render() {
46-
FragmentAndParameters initialCondition = null;
47-
if (sqlCriterion.condition().shouldRender()) {
48-
initialCondition = renderCondition();
49-
}
50-
51-
List<RenderedCriterion> subCriteria = sqlCriterion.mapSubCriteria(this::renderSubCriterion)
52-
.filter(Optional::isPresent)
53-
.map(Optional::get)
54-
.collect(Collectors.toList());
55-
5646
RenderedCriterion rc;
57-
if (initialCondition == null) {
58-
rc = renderWithoutInitialCondition(subCriteria);
47+
if (sqlCriterion.condition().shouldRender()) {
48+
rc = renderWithInitialCondition(renderCondition(), renderSubCriteria());
5949
} else {
60-
rc = renderWithInitialCondition(initialCondition, subCriteria);
50+
rc = renderWithoutInitialCondition(renderSubCriteria());
6151
}
62-
6352
return Optional.ofNullable(rc);
6453
}
6554

@@ -73,6 +62,13 @@ private FragmentAndParameters renderCondition() {
7362
return sqlCriterion.condition().accept(visitor);
7463
}
7564

65+
private List<RenderedCriterion> renderSubCriteria() {
66+
return sqlCriterion.mapSubCriteria(this::renderSubCriterion)
67+
.filter(Optional::isPresent)
68+
.map(Optional::get)
69+
.collect(Collectors.toList());
70+
}
71+
7672
private <S> Optional<RenderedCriterion> renderSubCriterion(SqlCriterion<S> subCriterion) {
7773
return CriterionRenderer.withCriterion(subCriterion)
7874
.withSequence(sequence)
@@ -94,19 +90,14 @@ private RenderedCriterion renderWithoutInitialCondition(List<RenderedCriterion>
9490
private RenderedCriterion renderWithInitialCondition(FragmentAndParameters initialCondition,
9591
List<RenderedCriterion> subCriteria) {
9692
if (subCriteria.isEmpty()) {
97-
return fromFragmentAndParameters(initialCondition);
93+
return calculateRenderedCriterion(initialCondition);
9894
}
9995

10096
return calculateRenderedCriterion(initialCondition, subCriteria);
10197
}
10298

103-
private RenderedCriterion fromFragmentAndParameters(FragmentAndParameters fragmentAndParameters) {
104-
RenderedCriterion.Builder builder = new RenderedCriterion.Builder()
105-
.withFragmentAndParameters(fragmentAndParameters);
106-
107-
sqlCriterion.connector().ifPresent(builder::withConnector);
108-
109-
return builder.build();
99+
private RenderedCriterion calculateRenderedCriterion(FragmentAndParameters initialCondition) {
100+
return fromFragmentAndParameters(initialCondition);
110101
}
111102

112103
private RenderedCriterion calculateRenderedCriterion(List<RenderedCriterion> subCriteria) {
@@ -118,8 +109,7 @@ private RenderedCriterion calculateRenderedCriterion(FragmentAndParameters initi
118109
FragmentCollector fc = subCriteria.stream()
119110
.map(RenderedCriterion::fragmentAndParametersWithConnector)
120111
.collect(FragmentCollector.collect(initialCondition));
121-
String fragment = calculateFragment(fc);
122-
return fromFragmentAndParameters(FragmentAndParameters.withFragment(fragment)
112+
return fromFragmentAndParameters(FragmentAndParameters.withFragment(calculateFragment(fc))
123113
.withParameters(fc.parameters())
124114
.build());
125115
}
@@ -133,6 +123,15 @@ private String calculateFragment(FragmentCollector collector) {
133123
}
134124
}
135125

126+
private RenderedCriterion fromFragmentAndParameters(FragmentAndParameters fragmentAndParameters) {
127+
RenderedCriterion.Builder builder = new RenderedCriterion.Builder()
128+
.withFragmentAndParameters(fragmentAndParameters);
129+
130+
sqlCriterion.connector().ifPresent(builder::withConnector);
131+
132+
return builder.build();
133+
}
134+
136135
public static <T> Builder<T> withCriterion(SqlCriterion<T> sqlCriterion) {
137136
return new Builder<T>().withCriterion(sqlCriterion);
138137
}

0 commit comments

Comments
 (0)