1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql;
17
18 import java.util.Objects;
19 import java.util.Optional;
20
21 import org.jspecify.annotations.Nullable;
22 import org.mybatis.dynamic.sql.render.RenderingContext;
23 import org.mybatis.dynamic.sql.util.FragmentAndParameters;
24
25 public class Constant<T> implements BindableColumn<T> {
26
27 private final @Nullable String alias;
28 private final String value;
29
30 private Constant(String value) {
31 this(value, null);
32 }
33
34 private Constant(String value, @Nullable String alias) {
35 this.value = Objects.requireNonNull(value);
36 this.alias = alias;
37 }
38
39 @Override
40 public Optional<String> alias() {
41 return Optional.ofNullable(alias);
42 }
43
44 @Override
45 public FragmentAndParameters render(RenderingContext renderingContext) {
46 return FragmentAndParameters.fromFragment(value);
47 }
48
49 @Override
50 public Constant<T> as(String alias) {
51 return new Constant<>(value, alias);
52 }
53
54 public static <T> Constant<T> of(String value) {
55 return new Constant<>(value);
56 }
57 }