add Predicate.evaluate() method
authoradam <adam@megacz.com>
Tue, 11 Nov 2008 07:39:08 +0000 (08:39 +0100)
committeradam <adam@megacz.com>
Tue, 11 Nov 2008 07:39:08 +0000 (08:39 +0100)
src/edu/berkeley/fleet/api/Predicate.java

index b5c22b3..4c42033 100644 (file)
@@ -17,4 +17,21 @@ public enum Predicate {
             default:         throw new Error("unknown predicate " + this);
         }
     }
+
+    /** evaluates this predicate for a given set of flags and olc */
+    public boolean evaluate(boolean flag_a, boolean flag_b, boolean flag_c, boolean olc_zero) {
+        switch(this) {
+            case Default:    return !olc_zero;
+            case FlagA:      return !olc_zero && flag_a;
+            case FlagB:      return !olc_zero && flag_b;
+            case FlagC:      return !olc_zero && flag_c;
+            case NotFlagA:   return !olc_zero && !flag_a;
+            case NotFlagB:   return !olc_zero && !flag_b;
+            case NotFlagC:   return !olc_zero && !flag_c;
+            case IgnoreOLC:  return true;
+            case OLCZero:    return olc_zero;
+            default:         throw new Error("unknown predicate " + this);
+        }
+    }
+
 }