1 package org.wikimedia.search.extra.regex.expression;
2
3
4
5
6 public final class True<T> implements Expression<T> {
7 private static final True<Object> TRUE = new True<>();
8
9
10
11
12 @SuppressWarnings("unchecked")
13 public static <T> True<T> instance() {
14 return (True<T>) TRUE;
15 }
16
17 private True() {
18
19 }
20
21 public String toString() {
22 return "TRUE";
23 }
24
25 @Override
26 public Expression<T> simplify() {
27 return this;
28 }
29
30 @Override
31 public boolean alwaysTrue() {
32 return true;
33 }
34
35 @Override
36 public boolean alwaysFalse() {
37 return false;
38 }
39
40 @Override
41 public boolean isComposite() {
42 return false;
43 }
44
45 @Override
46 public <J> J transform(Expression.Transformer<T, J> transformer) {
47 return transformer.alwaysTrue();
48 }
49
50 @Override
51 public int countClauses() {
52 return 0;
53 }
54 }