Skip to content

Commit ddc2407

Browse files
committed
Better Pattern for First Fragment
1 parent 59d4329 commit ddc2407

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/main/java/org/mybatis/dynamic/sql/util/FragmentCollector.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.HashMap;
2020
import java.util.List;
2121
import java.util.Map;
22+
import java.util.Optional;
2223
import java.util.stream.Collector;
2324
import java.util.stream.Stream;
2425

@@ -42,13 +43,12 @@ public FragmentCollector merge(FragmentCollector other) {
4243
return this;
4344
}
4445

45-
public String firstFragment() {
46-
return fragments.get(0).fragment();
46+
public Optional<String> firstFragment() {
47+
return fragments.stream().findFirst().map(FragmentAndParameters::fragment);
4748
}
4849

4950
public Stream<String> fragments() {
50-
return fragments.stream()
51-
.map(FragmentAndParameters::fragment);
51+
return fragments.stream().map(FragmentAndParameters::fragment);
5252
}
5353

5454
public Map<String, Object> parameters() {

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ private String calculateWhereClause(FragmentCollector collector) {
7272
return collector.fragments()
7373
.collect(Collectors.joining(" ", "where ", "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
7474
} else {
75-
return "where " + stripEnclosingParenthesesIfPresent(collector.firstFragment()); //$NON-NLS-1$
75+
return collector.firstFragment()
76+
.map(this::stripEnclosingParenthesesIfPresent)
77+
.map(s -> "where " + s) //$NON-NLS-1$
78+
.orElse(""); //$NON-NLS-1$
7679
}
7780
}
7881

0 commit comments

Comments
 (0)