From: adam Date: Tue, 11 Nov 2008 07:39:08 +0000 (+0100) Subject: add Predicate.evaluate() method X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=e14c92fc27c6f9c17e6dfc005012253a37683582;p=fleet.git add Predicate.evaluate() method --- diff --git a/src/edu/berkeley/fleet/api/Predicate.java b/src/edu/berkeley/fleet/api/Predicate.java index b5c22b3..4c42033 100644 --- a/src/edu/berkeley/fleet/api/Predicate.java +++ b/src/edu/berkeley/fleet/api/Predicate.java @@ -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); + } + } + }