34
34
import org .mybatis .dynamic .sql .util .FragmentAndParameters ;
35
35
import org .mybatis .dynamic .sql .util .FragmentCollector ;
36
36
37
- public class WhereConditionVisitor <T > implements ConditionVisitor <T , FragmentAndParameters > {
37
+ public class WhereConditionVisitor <T > implements ConditionVisitor <T , Optional < FragmentAndParameters > > {
38
38
39
39
private RenderingStrategy renderingStrategy ;
40
40
private AtomicInteger sequence ;
@@ -51,38 +51,38 @@ private WhereConditionVisitor(Builder<T> builder) {
51
51
}
52
52
53
53
@ Override
54
- public FragmentAndParameters visit (AbstractListValueCondition <T > condition ) {
54
+ public Optional < FragmentAndParameters > visit (AbstractListValueCondition <T > condition ) {
55
55
FragmentCollector fc = condition .mapValues (this ::toFragmentAndParameters )
56
56
.collect (FragmentCollector .collect ());
57
57
58
58
if (fc .isEmpty ()) {
59
- return null ;
59
+ return Optional . empty () ;
60
60
}
61
61
62
62
return FragmentAndParameters .withFragment (condition .renderCondition (columnName (), fc .fragments ()))
63
63
.withParameters (fc .parameters ())
64
- .build ();
64
+ .buildOptional ();
65
65
}
66
66
67
67
@ Override
68
- public FragmentAndParameters visit (AbstractNoValueCondition <T > condition ) {
68
+ public Optional < FragmentAndParameters > visit (AbstractNoValueCondition <T > condition ) {
69
69
return FragmentAndParameters .withFragment (condition .renderCondition (columnName ()))
70
- .build ();
70
+ .buildOptional ();
71
71
}
72
72
73
73
@ Override
74
- public FragmentAndParameters visit (AbstractSingleValueCondition <T > condition ) {
74
+ public Optional < FragmentAndParameters > visit (AbstractSingleValueCondition <T > condition ) {
75
75
String mapKey = formatParameterMapKey (sequence .getAndIncrement ());
76
76
String fragment = condition .renderCondition (columnName (),
77
77
getFormattedJdbcPlaceholder (mapKey ));
78
78
79
79
return FragmentAndParameters .withFragment (fragment )
80
80
.withParameter (mapKey , condition .value ())
81
- .build ();
81
+ .buildOptional ();
82
82
}
83
83
84
84
@ Override
85
- public FragmentAndParameters visit (AbstractTwoValueCondition <T > condition ) {
85
+ public Optional < FragmentAndParameters > visit (AbstractTwoValueCondition <T > condition ) {
86
86
String mapKey1 = formatParameterMapKey (sequence .getAndIncrement ());
87
87
String mapKey2 = formatParameterMapKey (sequence .getAndIncrement ());
88
88
String fragment = condition .renderCondition (columnName (),
@@ -92,12 +92,12 @@ public FragmentAndParameters visit(AbstractTwoValueCondition<T> condition) {
92
92
return FragmentAndParameters .withFragment (fragment )
93
93
.withParameter (mapKey1 , condition .value1 ())
94
94
.withParameter (mapKey2 , condition .value2 ())
95
- .build ();
95
+ .buildOptional ();
96
96
}
97
97
98
98
99
99
@ Override
100
- public FragmentAndParameters visit (AbstractSubselectCondition <T > condition ) {
100
+ public Optional < FragmentAndParameters > visit (AbstractSubselectCondition <T > condition ) {
101
101
SelectStatementProvider selectStatement = SelectRenderer .withSelectModel (condition .selectModel ())
102
102
.withRenderingStrategy (renderingStrategy )
103
103
.withSequence (sequence )
@@ -108,13 +108,13 @@ public FragmentAndParameters visit(AbstractSubselectCondition<T> condition) {
108
108
109
109
return FragmentAndParameters .withFragment (fragment )
110
110
.withParameters (selectStatement .getParameters ())
111
- .build ();
111
+ .buildOptional ();
112
112
}
113
113
114
114
@ Override
115
- public FragmentAndParameters visit (AbstractColumnComparisonCondition <T > condition ) {
115
+ public Optional < FragmentAndParameters > visit (AbstractColumnComparisonCondition <T > condition ) {
116
116
String fragment = condition .renderCondition (columnName (), tableAliasCalculator );
117
- return FragmentAndParameters .withFragment (fragment ).build ();
117
+ return FragmentAndParameters .withFragment (fragment ).buildOptional ();
118
118
}
119
119
120
120
private FragmentAndParameters toFragmentAndParameters (Object value ) {
@@ -170,9 +170,9 @@ public Builder<T> withTableAliasCalculator(TableAliasCalculator tableAliasCalcul
170
170
}
171
171
172
172
public Builder <T > withParameterName (String parameterName ) {
173
- parameterPrefix = Optional . ofNullable (parameterName )
174
- . map ( pn -> pn + "." + DEFAULT_PARAMETER_PREFIX ) //$NON-NLS-1$
175
- . orElse ( DEFAULT_PARAMETER_PREFIX );
173
+ if (parameterName != null ) {
174
+ parameterPrefix = parameterName + "." + DEFAULT_PARAMETER_PREFIX ; //$NON-NLS-1$
175
+ }
176
176
return this ;
177
177
}
178
178
0 commit comments