16
16
package org .mybatis .dynamic .sql .where .render ;
17
17
18
18
import java .util .Objects ;
19
- import java .util .Optional ;
20
19
import java .util .concurrent .atomic .AtomicInteger ;
21
20
22
21
import org .mybatis .dynamic .sql .AbstractColumnComparisonCondition ;
34
33
import org .mybatis .dynamic .sql .util .FragmentAndParameters ;
35
34
import org .mybatis .dynamic .sql .util .FragmentCollector ;
36
35
37
- public class WhereConditionVisitor <T > implements ConditionVisitor <T , Optional < FragmentAndParameters > > {
36
+ public class WhereConditionVisitor <T > implements ConditionVisitor <T , FragmentAndParameters > {
38
37
39
38
private RenderingStrategy renderingStrategy ;
40
39
private AtomicInteger sequence ;
@@ -51,38 +50,34 @@ private WhereConditionVisitor(Builder<T> builder) {
51
50
}
52
51
53
52
@ Override
54
- public Optional < FragmentAndParameters > visit (AbstractListValueCondition <T > condition ) {
53
+ public FragmentAndParameters visit (AbstractListValueCondition <T > condition ) {
55
54
FragmentCollector fc = condition .mapValues (this ::toFragmentAndParameters )
56
55
.collect (FragmentCollector .collect ());
57
56
58
- if (fc .isEmpty () && condition .skipRenderingWhenEmpty ()) {
59
- return Optional .empty ();
60
- }
61
-
62
57
return FragmentAndParameters .withFragment (condition .renderCondition (columnName (), fc .fragments ()))
63
58
.withParameters (fc .parameters ())
64
- .buildOptional ();
59
+ .build ();
65
60
}
66
61
67
62
@ Override
68
- public Optional < FragmentAndParameters > visit (AbstractNoValueCondition <T > condition ) {
63
+ public FragmentAndParameters visit (AbstractNoValueCondition <T > condition ) {
69
64
return FragmentAndParameters .withFragment (condition .renderCondition (columnName ()))
70
- .buildOptional ();
65
+ .build ();
71
66
}
72
67
73
68
@ Override
74
- public Optional < FragmentAndParameters > visit (AbstractSingleValueCondition <T > condition ) {
69
+ public FragmentAndParameters visit (AbstractSingleValueCondition <T > condition ) {
75
70
String mapKey = RenderingStrategy .formatParameterMapKey (sequence );
76
71
String fragment = condition .renderCondition (columnName (),
77
72
getFormattedJdbcPlaceholder (mapKey ));
78
73
79
74
return FragmentAndParameters .withFragment (fragment )
80
75
.withParameter (mapKey , convertValue (condition .value ()))
81
- .buildOptional ();
76
+ .build ();
82
77
}
83
78
84
79
@ Override
85
- public Optional < FragmentAndParameters > visit (AbstractTwoValueCondition <T > condition ) {
80
+ public FragmentAndParameters visit (AbstractTwoValueCondition <T > condition ) {
86
81
String mapKey1 = RenderingStrategy .formatParameterMapKey (sequence );
87
82
String mapKey2 = RenderingStrategy .formatParameterMapKey (sequence );
88
83
String fragment = condition .renderCondition (columnName (),
@@ -92,12 +87,12 @@ public Optional<FragmentAndParameters> visit(AbstractTwoValueCondition<T> condit
92
87
return FragmentAndParameters .withFragment (fragment )
93
88
.withParameter (mapKey1 , convertValue (condition .value1 ()))
94
89
.withParameter (mapKey2 , convertValue (condition .value2 ()))
95
- .buildOptional ();
90
+ .build ();
96
91
}
97
92
98
93
99
94
@ Override
100
- public Optional < FragmentAndParameters > visit (AbstractSubselectCondition <T > condition ) {
95
+ public FragmentAndParameters visit (AbstractSubselectCondition <T > condition ) {
101
96
SelectStatementProvider selectStatement = SelectRenderer .withSelectModel (condition .selectModel ())
102
97
.withRenderingStrategy (renderingStrategy )
103
98
.withSequence (sequence )
@@ -108,13 +103,13 @@ public Optional<FragmentAndParameters> visit(AbstractSubselectCondition<T> condi
108
103
109
104
return FragmentAndParameters .withFragment (fragment )
110
105
.withParameters (selectStatement .getParameters ())
111
- .buildOptional ();
106
+ .build ();
112
107
}
113
108
114
109
@ Override
115
- public Optional < FragmentAndParameters > visit (AbstractColumnComparisonCondition <T > condition ) {
110
+ public FragmentAndParameters visit (AbstractColumnComparisonCondition <T > condition ) {
116
111
String fragment = condition .renderCondition (columnName (), tableAliasCalculator );
117
- return FragmentAndParameters .withFragment (fragment ).buildOptional ();
112
+ return FragmentAndParameters .withFragment (fragment ).build ();
118
113
}
119
114
120
115
private Object convertValue (T value ) {
0 commit comments