View Javadoc
1   package org.wikimedia.search.extra.regex.expression;
2   
3   /**
4    * Always false.
5    */
6   public final class False<T> implements Expression<T> {
7       private static final False<Object> TRUE = new False<>();
8   
9       /**
10       * There is only one false.
11       */
12      @SuppressWarnings("unchecked")
13      public static <T> False<T> instance() {
14          return (False<T>) TRUE;
15      }
16  
17      private False() {
18          // Only one instance
19      }
20  
21      public String toString() {
22          return "FALSE";
23      }
24  
25      @Override
26      public Expression<T> simplify() {
27          return this;
28      }
29  
30      @Override
31      public boolean alwaysTrue() {
32          return false;
33      }
34  
35      @Override
36      public boolean alwaysFalse() {
37          return true;
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.alwaysFalse();
48      }
49  
50      @Override
51      public int countClauses() {
52          return 0;
53      }
54  }