/** * Search a rule in a set of rules * * @param rule * @param set * @return */ private static boolean searchRule( final Rule rule, final Collection<Rule> set, final PrintStream out) { boolean found = false; for (final Iterator<Rule> i = set.iterator(); i.hasNext() && !found; ) { final Rule r = i.next(); if (r.getClass().getName().equals(rule.getClass().getName())) { found = r.getName().equals(rule.getName()) && propertiesMatchFor(r, rule) && r.getPriority() == rule.getPriority(); if (!found && r.getName().equals(rule.getName())) { out.println("Rules " + r.getName() + " are different because:"); out.println("Priorities are different: " + (r.getPriority() != rule.getPriority())); out.println("Properties are different: " + !propertiesMatchFor(r, rule)); out.println(); out.println("Rule to search"); dumpRule(rule, out); out.println(); out.println("Rule from set"); dumpRule(r, out); out.println(); } } } return found; }