3434import org .mybatis .dynamic .sql .util .FragmentAndParameters ;
3535import org .mybatis .dynamic .sql .util .FragmentCollector ;
3636
37- public class WhereConditionVisitor <T > implements ConditionVisitor <T , FragmentAndParameters > {
37+ public class WhereConditionVisitor <T > implements ConditionVisitor <T , Optional < FragmentAndParameters > > {
3838
3939 private RenderingStrategy renderingStrategy ;
4040 private AtomicInteger sequence ;
@@ -51,38 +51,38 @@ private WhereConditionVisitor(Builder<T> builder) {
5151 }
5252
5353 @ Override
54- public FragmentAndParameters visit (AbstractListValueCondition <T > condition ) {
54+ public Optional < FragmentAndParameters > visit (AbstractListValueCondition <T > condition ) {
5555 FragmentCollector fc = condition .mapValues (this ::toFragmentAndParameters )
5656 .collect (FragmentCollector .collect ());
5757
5858 if (fc .isEmpty ()) {
59- return null ;
59+ return Optional . empty () ;
6060 }
6161
6262 return FragmentAndParameters .withFragment (condition .renderCondition (columnName (), fc .fragments ()))
6363 .withParameters (fc .parameters ())
64- .build ();
64+ .buildOptional ();
6565 }
6666
6767 @ Override
68- public FragmentAndParameters visit (AbstractNoValueCondition <T > condition ) {
68+ public Optional < FragmentAndParameters > visit (AbstractNoValueCondition <T > condition ) {
6969 return FragmentAndParameters .withFragment (condition .renderCondition (columnName ()))
70- .build ();
70+ .buildOptional ();
7171 }
7272
7373 @ Override
74- public FragmentAndParameters visit (AbstractSingleValueCondition <T > condition ) {
74+ public Optional < FragmentAndParameters > visit (AbstractSingleValueCondition <T > condition ) {
7575 String mapKey = formatParameterMapKey (sequence .getAndIncrement ());
7676 String fragment = condition .renderCondition (columnName (),
7777 getFormattedJdbcPlaceholder (mapKey ));
7878
7979 return FragmentAndParameters .withFragment (fragment )
8080 .withParameter (mapKey , condition .value ())
81- .build ();
81+ .buildOptional ();
8282 }
8383
8484 @ Override
85- public FragmentAndParameters visit (AbstractTwoValueCondition <T > condition ) {
85+ public Optional < FragmentAndParameters > visit (AbstractTwoValueCondition <T > condition ) {
8686 String mapKey1 = formatParameterMapKey (sequence .getAndIncrement ());
8787 String mapKey2 = formatParameterMapKey (sequence .getAndIncrement ());
8888 String fragment = condition .renderCondition (columnName (),
@@ -92,12 +92,12 @@ public FragmentAndParameters visit(AbstractTwoValueCondition<T> condition) {
9292 return FragmentAndParameters .withFragment (fragment )
9393 .withParameter (mapKey1 , condition .value1 ())
9494 .withParameter (mapKey2 , condition .value2 ())
95- .build ();
95+ .buildOptional ();
9696 }
9797
9898
9999 @ Override
100- public FragmentAndParameters visit (AbstractSubselectCondition <T > condition ) {
100+ public Optional < FragmentAndParameters > visit (AbstractSubselectCondition <T > condition ) {
101101 SelectStatementProvider selectStatement = SelectRenderer .withSelectModel (condition .selectModel ())
102102 .withRenderingStrategy (renderingStrategy )
103103 .withSequence (sequence )
@@ -108,13 +108,13 @@ public FragmentAndParameters visit(AbstractSubselectCondition<T> condition) {
108108
109109 return FragmentAndParameters .withFragment (fragment )
110110 .withParameters (selectStatement .getParameters ())
111- .build ();
111+ .buildOptional ();
112112 }
113113
114114 @ Override
115- public FragmentAndParameters visit (AbstractColumnComparisonCondition <T > condition ) {
115+ public Optional < FragmentAndParameters > visit (AbstractColumnComparisonCondition <T > condition ) {
116116 String fragment = condition .renderCondition (columnName (), tableAliasCalculator );
117- return FragmentAndParameters .withFragment (fragment ).build ();
117+ return FragmentAndParameters .withFragment (fragment ).buildOptional ();
118118 }
119119
120120 private FragmentAndParameters toFragmentAndParameters (Object value ) {
@@ -170,9 +170,9 @@ public Builder<T> withTableAliasCalculator(TableAliasCalculator tableAliasCalcul
170170 }
171171
172172 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+ }
176176 return this ;
177177 }
178178
0 commit comments