/** * Remove a rule. * @param rule The rule. */ public void removeRule(String rulename) { IRule<?> rule = null; if(rules!=null) { rule = rules.remove(rulename); if(rule==null) throw new RuntimeException("Rule not contained: "+rulename); } if(matcher!=null) matcher.removeRule(rule); }
/** * Remove a rule from the matcher. * @param rule The rule. */ public void removeRule(IRule<?> rule) { for(EventType type: rule.getEvents()) { removeRule(type, rule, 0); } }
/** * Remove a rule for event from a level. * @param type The event type. * @param rule The rule. * @param i The level. */ protected void removeRule(EventType type, IRule<?> rule, int i) { String[] subtypes = type.getTypes(); if(i+1==subtypes.length) { removeRule(subtypes[i], rule); } else { MatcherNode node = getOrCreateMatcherNode(subtypes[i]); node.removeRule(type, rule, i+1); } }