View Javadoc
1   /*
2    *    Copyright 2016-2025 the original author or authors.
3    *
4    *    Licensed under the Apache License, Version 2.0 (the "License");
5    *    you may not use this file except in compliance with the License.
6    *    You may obtain a copy of the License at
7    *
8    *       https://www.apache.org/licenses/LICENSE-2.0
9    *
10   *    Unless required by applicable law or agreed to in writing, software
11   *    distributed under the License is distributed on an "AS IS" BASIS,
12   *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *    See the License for the specific language governing permissions and
14   *    limitations under the License.
15   */
16  package org.mybatis.dynamic.sql.where.condition;
17  
18  import java.util.function.BooleanSupplier;
19  
20  import org.mybatis.dynamic.sql.AbstractNoValueCondition;
21  
22  public class IsNotNull<T> extends AbstractNoValueCondition<T> implements AbstractNoValueCondition.Filterable {
23      private static final IsNotNull<?> EMPTY = new IsNotNull<>() {
24          @Override
25          public boolean isEmpty() {
26              return true;
27          }
28      };
29  
30      public static <T> IsNotNull<T> empty() {
31          @SuppressWarnings("unchecked")
32          IsNotNull<T> t = (IsNotNull<T>) EMPTY;
33          return t;
34      }
35  
36      public IsNotNull() {
37          super();
38      }
39  
40      @Override
41      public String operator() {
42          return "is not null"; //$NON-NLS-1$
43      }
44  
45      @Override
46      public <S> IsNotNull<S> filter(BooleanSupplier booleanSupplier) {
47          @SuppressWarnings("unchecked")
48          IsNotNull<S> self = (IsNotNull<S>) this;
49          return filterSupport(booleanSupplier, IsNotNull::empty, self);
50      }
51  }