protected Rule ruleMatch(ObjectWithDynamicAttributes state, Set<Rule> rulesSet) { foreach (Rule r in rulesSet) { if (r.evaluate(state)) { return r; } } return null; }