4949import org .mybatis .dynamic .sql .util .Buildable ;
5050import org .mybatis .dynamic .sql .where .WhereDSL ;
5151import org .mybatis .dynamic .sql .where .condition .IsBetween ;
52+ import org .mybatis .dynamic .sql .where .condition .IsBetweenWhenPresent ;
5253import org .mybatis .dynamic .sql .where .condition .IsEqualTo ;
5354import org .mybatis .dynamic .sql .where .condition .IsEqualToColumn ;
55+ import org .mybatis .dynamic .sql .where .condition .IsEqualToWhenPresent ;
5456import org .mybatis .dynamic .sql .where .condition .IsEqualToWithSubselect ;
5557import org .mybatis .dynamic .sql .where .condition .IsGreaterThan ;
5658import org .mybatis .dynamic .sql .where .condition .IsGreaterThanColumn ;
5759import org .mybatis .dynamic .sql .where .condition .IsGreaterThanOrEqualTo ;
5860import org .mybatis .dynamic .sql .where .condition .IsGreaterThanOrEqualToColumn ;
61+ import org .mybatis .dynamic .sql .where .condition .IsGreaterThanOrEqualToWhenPresent ;
5962import org .mybatis .dynamic .sql .where .condition .IsGreaterThanOrEqualToWithSubselect ;
63+ import org .mybatis .dynamic .sql .where .condition .IsGreaterThanWhenPresent ;
6064import org .mybatis .dynamic .sql .where .condition .IsGreaterThanWithSubselect ;
6165import org .mybatis .dynamic .sql .where .condition .IsIn ;
6266import org .mybatis .dynamic .sql .where .condition .IsInCaseInsensitive ;
67+ import org .mybatis .dynamic .sql .where .condition .IsInCaseInsensitiveWhenPresent ;
68+ import org .mybatis .dynamic .sql .where .condition .IsInWhenPresent ;
6369import org .mybatis .dynamic .sql .where .condition .IsInWithSubselect ;
6470import org .mybatis .dynamic .sql .where .condition .IsLessThan ;
6571import org .mybatis .dynamic .sql .where .condition .IsLessThanColumn ;
6672import org .mybatis .dynamic .sql .where .condition .IsLessThanOrEqualTo ;
6773import org .mybatis .dynamic .sql .where .condition .IsLessThanOrEqualToColumn ;
74+ import org .mybatis .dynamic .sql .where .condition .IsLessThanOrEqualToWhenPresent ;
6875import org .mybatis .dynamic .sql .where .condition .IsLessThanOrEqualToWithSubselect ;
76+ import org .mybatis .dynamic .sql .where .condition .IsLessThanWhenPresent ;
6977import org .mybatis .dynamic .sql .where .condition .IsLessThanWithSubselect ;
7078import org .mybatis .dynamic .sql .where .condition .IsLike ;
7179import org .mybatis .dynamic .sql .where .condition .IsLikeCaseInsensitive ;
80+ import org .mybatis .dynamic .sql .where .condition .IsLikeCaseInsensitiveWhenPresent ;
81+ import org .mybatis .dynamic .sql .where .condition .IsLikeWhenPresent ;
7282import org .mybatis .dynamic .sql .where .condition .IsNotBetween ;
83+ import org .mybatis .dynamic .sql .where .condition .IsNotBetweenWhenPresent ;
7384import org .mybatis .dynamic .sql .where .condition .IsNotEqualTo ;
7485import org .mybatis .dynamic .sql .where .condition .IsNotEqualToColumn ;
86+ import org .mybatis .dynamic .sql .where .condition .IsNotEqualToWhenPresent ;
7587import org .mybatis .dynamic .sql .where .condition .IsNotEqualToWithSubselect ;
7688import org .mybatis .dynamic .sql .where .condition .IsNotIn ;
7789import org .mybatis .dynamic .sql .where .condition .IsNotInCaseInsensitive ;
90+ import org .mybatis .dynamic .sql .where .condition .IsNotInCaseInsensitiveWhenPresent ;
91+ import org .mybatis .dynamic .sql .where .condition .IsNotInWhenPresent ;
7892import org .mybatis .dynamic .sql .where .condition .IsNotInWithSubselect ;
7993import org .mybatis .dynamic .sql .where .condition .IsNotLike ;
8094import org .mybatis .dynamic .sql .where .condition .IsNotLikeCaseInsensitive ;
95+ import org .mybatis .dynamic .sql .where .condition .IsNotLikeCaseInsensitiveWhenPresent ;
96+ import org .mybatis .dynamic .sql .where .condition .IsNotLikeWhenPresent ;
8197import org .mybatis .dynamic .sql .where .condition .IsNotNull ;
8298import org .mybatis .dynamic .sql .where .condition .IsNull ;
8399
@@ -267,6 +283,14 @@ static <T> IsEqualToColumn<T> isEqualTo(BasicColumn column) {
267283 return IsEqualToColumn .of (column );
268284 }
269285
286+ static <T > IsEqualToWhenPresent <T > isEqualToWhenPresent (T value ) {
287+ return isEqualToWhenPresent (() -> value );
288+ }
289+
290+ static <T > IsEqualToWhenPresent <T > isEqualToWhenPresent (Supplier <T > valueSupplier ) {
291+ return IsEqualToWhenPresent .of (valueSupplier );
292+ }
293+
270294 static <T > IsNotEqualTo <T > isNotEqualTo (T value ) {
271295 return isNotEqualTo (() -> value );
272296 }
@@ -283,6 +307,14 @@ static <T> IsNotEqualToColumn<T> isNotEqualTo(BasicColumn column) {
283307 return IsNotEqualToColumn .of (column );
284308 }
285309
310+ static <T > IsNotEqualToWhenPresent <T > isNotEqualToWhenPresent (T value ) {
311+ return isNotEqualToWhenPresent (() -> value );
312+ }
313+
314+ static <T > IsNotEqualToWhenPresent <T > isNotEqualToWhenPresent (Supplier <T > valueSupplier ) {
315+ return IsNotEqualToWhenPresent .of (valueSupplier );
316+ }
317+
286318 static <T > IsGreaterThan <T > isGreaterThan (T value ) {
287319 return isGreaterThan (() -> value );
288320 }
@@ -299,6 +331,14 @@ static <T> IsGreaterThanColumn<T> isGreaterThan(BasicColumn column) {
299331 return IsGreaterThanColumn .of (column );
300332 }
301333
334+ static <T > IsGreaterThanWhenPresent <T > isGreaterThanWhenPresent (T value ) {
335+ return isGreaterThanWhenPresent (() -> value );
336+ }
337+
338+ static <T > IsGreaterThanWhenPresent <T > isGreaterThanWhenPresent (Supplier <T > valueSupplier ) {
339+ return IsGreaterThanWhenPresent .of (valueSupplier );
340+ }
341+
302342 static <T > IsGreaterThanOrEqualTo <T > isGreaterThanOrEqualTo (T value ) {
303343 return isGreaterThanOrEqualTo (() -> value );
304344 }
@@ -316,6 +356,14 @@ static <T> IsGreaterThanOrEqualToColumn<T> isGreaterThanOrEqualTo(BasicColumn co
316356 return IsGreaterThanOrEqualToColumn .of (column );
317357 }
318358
359+ static <T > IsGreaterThanOrEqualToWhenPresent <T > isGreaterThanOrEqualToWhenPresent (T value ) {
360+ return isGreaterThanOrEqualToWhenPresent (() -> value );
361+ }
362+
363+ static <T > IsGreaterThanOrEqualToWhenPresent <T > isGreaterThanOrEqualToWhenPresent (Supplier <T > valueSupplier ) {
364+ return IsGreaterThanOrEqualToWhenPresent .of (valueSupplier );
365+ }
366+
319367 static <T > IsLessThan <T > isLessThan (T value ) {
320368 return isLessThan (() -> value );
321369 }
@@ -332,6 +380,14 @@ static <T> IsLessThanColumn<T> isLessThan(BasicColumn column) {
332380 return IsLessThanColumn .of (column );
333381 }
334382
383+ static <T > IsLessThanWhenPresent <T > isLessThanWhenPresent (T value ) {
384+ return isLessThanWhenPresent (() -> value );
385+ }
386+
387+ static <T > IsLessThanWhenPresent <T > isLessThanWhenPresent (Supplier <T > valueSupplier ) {
388+ return IsLessThanWhenPresent .of (valueSupplier );
389+ }
390+
335391 static <T > IsLessThanOrEqualTo <T > isLessThanOrEqualTo (T value ) {
336392 return isLessThanOrEqualTo (() -> value );
337393 }
@@ -348,6 +404,14 @@ static <T> IsLessThanOrEqualToColumn<T> isLessThanOrEqualTo(BasicColumn column)
348404 return IsLessThanOrEqualToColumn .of (column );
349405 }
350406
407+ static <T > IsLessThanOrEqualToWhenPresent <T > isLessThanOrEqualToWhenPresent (T value ) {
408+ return isLessThanOrEqualToWhenPresent (() -> value );
409+ }
410+
411+ static <T > IsLessThanOrEqualToWhenPresent <T > isLessThanOrEqualToWhenPresent (Supplier <T > valueSupplier ) {
412+ return IsLessThanOrEqualToWhenPresent .of (valueSupplier );
413+ }
414+
351415 @ SafeVarargs
352416 static <T > IsIn <T > isIn (T ...values ) {
353417 return isIn (Arrays .asList (values ));
@@ -361,6 +425,15 @@ static <T> IsInWithSubselect<T> isIn(Buildable<SelectModel> selectModelBuilder)
361425 return IsInWithSubselect .of (selectModelBuilder );
362426 }
363427
428+ @ SafeVarargs
429+ static <T > IsInWhenPresent <T > isInWhenPresent (T ...values ) {
430+ return isInWhenPresent (Arrays .asList (values ));
431+ }
432+
433+ static <T > IsInWhenPresent <T > isInWhenPresent (List <T > values ) {
434+ return IsInWhenPresent .of (values );
435+ }
436+
364437 @ SafeVarargs
365438 static <T > IsNotIn <T > isNotIn (T ...values ) {
366439 return isNotIn (Arrays .asList (values ));
@@ -374,6 +447,15 @@ static <T> IsNotInWithSubselect<T> isNotIn(Buildable<SelectModel> selectModelBui
374447 return IsNotInWithSubselect .of (selectModelBuilder );
375448 }
376449
450+ @ SafeVarargs
451+ static <T > IsNotInWhenPresent <T > isNotInWhenPresent (T ...values ) {
452+ return isNotInWhenPresent (Arrays .asList (values ));
453+ }
454+
455+ static <T > IsNotInWhenPresent <T > isNotInWhenPresent (List <T > values ) {
456+ return IsNotInWhenPresent .of (values );
457+ }
458+
377459 static <T > IsBetween .Builder <T > isBetween (T value1 ) {
378460 return isBetween (() -> value1 );
379461 }
@@ -382,6 +464,14 @@ static <T> IsBetween.Builder<T> isBetween(Supplier<T> valueSupplier1) {
382464 return IsBetween .isBetween (valueSupplier1 );
383465 }
384466
467+ static <T > IsBetweenWhenPresent .Builder <T > isBetweenWhenPresent (T value1 ) {
468+ return isBetweenWhenPresent (() -> value1 );
469+ }
470+
471+ static <T > IsBetweenWhenPresent .Builder <T > isBetweenWhenPresent (Supplier <T > valueSupplier1 ) {
472+ return IsBetweenWhenPresent .isBetweenWhenPresent (valueSupplier1 );
473+ }
474+
385475 static <T > IsNotBetween .Builder <T > isNotBetween (T value1 ) {
386476 return isNotBetween (() -> value1 );
387477 }
@@ -390,6 +480,14 @@ static <T> IsNotBetween.Builder<T> isNotBetween(Supplier<T> valueSupplier1) {
390480 return IsNotBetween .isNotBetween (valueSupplier1 );
391481 }
392482
483+ static <T > IsNotBetweenWhenPresent .Builder <T > isNotBetweenWhenPresent (T value1 ) {
484+ return isNotBetweenWhenPresent (() -> value1 );
485+ }
486+
487+ static <T > IsNotBetweenWhenPresent .Builder <T > isNotBetweenWhenPresent (Supplier <T > valueSupplier1 ) {
488+ return IsNotBetweenWhenPresent .isNotBetweenWhenPresent (valueSupplier1 );
489+ }
490+
393491 // for string columns, but generic for columns with type handlers
394492 static <T > IsLike <T > isLike (T value ) {
395493 return isLike (() -> value );
@@ -399,6 +497,14 @@ static <T> IsLike<T> isLike(Supplier<T> valueSupplier) {
399497 return IsLike .of (valueSupplier );
400498 }
401499
500+ static <T > IsLikeWhenPresent <T > isLikeWhenPresent (T value ) {
501+ return isLikeWhenPresent (() -> value );
502+ }
503+
504+ static <T > IsLikeWhenPresent <T > isLikeWhenPresent (Supplier <T > valueSupplier ) {
505+ return IsLikeWhenPresent .of (valueSupplier );
506+ }
507+
402508 static <T > IsNotLike <T > isNotLike (T value ) {
403509 return isNotLike (() -> value );
404510 }
@@ -407,6 +513,14 @@ static <T> IsNotLike<T> isNotLike(Supplier<T> valueSupplier) {
407513 return IsNotLike .of (valueSupplier );
408514 }
409515
516+ static <T > IsNotLikeWhenPresent <T > isNotLikeWhenPresent (T value ) {
517+ return isNotLikeWhenPresent (() -> value );
518+ }
519+
520+ static <T > IsNotLikeWhenPresent <T > isNotLikeWhenPresent (Supplier <T > valueSupplier ) {
521+ return IsNotLikeWhenPresent .of (valueSupplier );
522+ }
523+
410524 // conditions for strings only
411525 static IsLikeCaseInsensitive isLikeCaseInsensitive (String value ) {
412526 return isLikeCaseInsensitive (() -> value );
@@ -416,6 +530,14 @@ static IsLikeCaseInsensitive isLikeCaseInsensitive(Supplier<String> valueSupplie
416530 return IsLikeCaseInsensitive .of (valueSupplier );
417531 }
418532
533+ static IsLikeCaseInsensitiveWhenPresent isLikeCaseInsensitiveWhenPresent (String value ) {
534+ return isLikeCaseInsensitiveWhenPresent (() -> value );
535+ }
536+
537+ static IsLikeCaseInsensitiveWhenPresent isLikeCaseInsensitiveWhenPresent (Supplier <String > valueSupplier ) {
538+ return IsLikeCaseInsensitiveWhenPresent .of (valueSupplier );
539+ }
540+
419541 static IsNotLikeCaseInsensitive isNotLikeCaseInsensitive (String value ) {
420542 return isNotLikeCaseInsensitive (() -> value );
421543 }
@@ -424,14 +546,46 @@ static IsNotLikeCaseInsensitive isNotLikeCaseInsensitive(Supplier<String> valueS
424546 return IsNotLikeCaseInsensitive .of (valueSupplier );
425547 }
426548
549+ static IsNotLikeCaseInsensitiveWhenPresent isNotLikeCaseInsensitiveWhenPresent (String value ) {
550+ return isNotLikeCaseInsensitiveWhenPresent (() -> value );
551+ }
552+
553+ static IsNotLikeCaseInsensitiveWhenPresent isNotLikeCaseInsensitiveWhenPresent (Supplier <String > valueSupplier ) {
554+ return IsNotLikeCaseInsensitiveWhenPresent .of (valueSupplier );
555+ }
556+
427557 static IsInCaseInsensitive isInCaseInsensitive (String ...values ) {
428- return IsInCaseInsensitive .of (Arrays .asList (values ));
558+ return isInCaseInsensitive (Arrays .asList (values ));
559+ }
560+
561+ static IsInCaseInsensitive isInCaseInsensitive (List <String > values ) {
562+ return IsInCaseInsensitive .of (values );
563+ }
564+
565+ static IsInCaseInsensitiveWhenPresent isInCaseInsensitiveWhenPresent (String ...values ) {
566+ return isInCaseInsensitiveWhenPresent (Arrays .asList (values ));
567+ }
568+
569+ static IsInCaseInsensitiveWhenPresent isInCaseInsensitiveWhenPresent (List <String > values ) {
570+ return IsInCaseInsensitiveWhenPresent .of (values );
429571 }
430572
431573 static IsNotInCaseInsensitive isNotInCaseInsensitive (String ...values ) {
432- return IsNotInCaseInsensitive .of (Arrays .asList (values ));
574+ return isNotInCaseInsensitive (Arrays .asList (values ));
575+ }
576+
577+ static IsNotInCaseInsensitive isNotInCaseInsensitive (List <String > values ) {
578+ return IsNotInCaseInsensitive .of (values );
433579 }
434580
581+ static IsNotInCaseInsensitiveWhenPresent isNotInCaseInsensitiveWhenPresent (String ...values ) {
582+ return isNotInCaseInsensitiveWhenPresent (Arrays .asList (values ));
583+ }
584+
585+ static IsNotInCaseInsensitiveWhenPresent isNotInCaseInsensitiveWhenPresent (List <String > values ) {
586+ return IsNotInCaseInsensitiveWhenPresent .of (values );
587+ }
588+
435589 // order by support
436590 static SortSpecification sortColumn (String name ) {
437591 return SimpleSortSpecification .of (name );
0 commit comments