1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql.where.condition;
17
18 import java.util.NoSuchElementException;
19 import java.util.function.Function;
20 import java.util.function.Predicate;
21
22 import org.jspecify.annotations.NonNull;
23 import org.mybatis.dynamic.sql.AbstractSingleValueCondition;
24
25 public class IsGreaterThanOrEqualTo<T> extends AbstractSingleValueCondition<T>
26 implements AbstractSingleValueCondition.Filterable<T>, AbstractSingleValueCondition.Mappable<T> {
27 private static final IsGreaterThanOrEqualTo<?> EMPTY = new IsGreaterThanOrEqualTo<Object>(-1) {
28 @Override
29 public Object value() {
30 throw new NoSuchElementException("No value present");
31 }
32
33 @Override
34 public boolean isEmpty() {
35 return true;
36 }
37 };
38
39 public static <T> IsGreaterThanOrEqualTo<T> empty() {
40 @SuppressWarnings("unchecked")
41 IsGreaterThanOrEqualTo<T> t = (IsGreaterThanOrEqualTo<T>) EMPTY;
42 return t;
43 }
44
45 protected IsGreaterThanOrEqualTo(T value) {
46 super(value);
47 }
48
49 @Override
50 public String operator() {
51 return ">=";
52 }
53
54 public static <T> IsGreaterThanOrEqualTo<T> of(T value) {
55 return new IsGreaterThanOrEqualTo<>(value);
56 }
57
58 @Override
59 public IsGreaterThanOrEqualTo<T> filter(Predicate<? super @NonNull T> predicate) {
60 return filterSupport(predicate, IsGreaterThanOrEqualTo::empty, this);
61 }
62
63 @Override
64 public <R> IsGreaterThanOrEqualTo<R> map(Function<? super @NonNull T, ? extends @NonNull R> mapper) {
65 return mapSupport(mapper, IsGreaterThanOrEqualTo::new, IsGreaterThanOrEqualTo::empty);
66 }
67 }