5 public class ComparisonPredicate extends Predicate {
7 public static final Comparison GT = new Comparison("GT");
8 public static final Comparison GE = new Comparison("GE");
9 public static final Comparison LT = new Comparison("LT");
10 public static final Comparison LE = new Comparison("LE");
11 public static final Comparison EQ = new Comparison("EQ");
12 private static final Comparison ALL[] = { GT, GE, LT, LE, EQ };
14 public static class Comparison {
15 private final String name;
16 private Comparison(String name) { this.name = name; }
17 public String toString() { return name; }
18 public static Comparison fromString(String name) {
20 throw new NullPointerException();
23 for (int i = 0; i < ALL.length; i++) {
24 if (name.equalsIgnoreCase(ALL[i].toString())) {
29 throw new IllegalArgumentException("Input not a valid comparison.");
33 Comparison comparison;
36 public ComparisonPredicate(String comparison, Expr left, Expr right) {
37 this.comparison = Comparison.fromString(comparison);
42 public Set getRequiredDescriptors() {
45 Set v = left.getRequiredDescriptors();
46 v.addAll(right.getRequiredDescriptors());