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 IsGreaterThan<T> extends AbstractSingleValueCondition<T>
26 implements AbstractSingleValueCondition.Filterable<T>, AbstractSingleValueCondition.Mappable<T> {
27 private static final IsGreaterThan<?> EMPTY = new IsGreaterThan<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> IsGreaterThan<T> empty() {
40 @SuppressWarnings("unchecked")
41 IsGreaterThan<T> t = (IsGreaterThan<T>) EMPTY;
42 return t;
43 }
44
45 protected IsGreaterThan(T value) {
46 super(value);
47 }
48
49 @Override
50 public String operator() {
51 return ">";
52 }
53
54 public static <T> IsGreaterThan<T> of(T value) {
55 return new IsGreaterThan<>(value);
56 }
57
58 @Override
59 public IsGreaterThan<T> filter(Predicate<? super @NonNull T> predicate) {
60 return filterSupport(predicate, IsGreaterThan::empty, this);
61 }
62
63 @Override
64 public <R> IsGreaterThan<R> map(Function<? super @NonNull T, ? extends @NonNull R> mapper) {
65 return mapSupport(mapper, IsGreaterThan::new, IsGreaterThan::empty);
66 }
67 }