/** * Add a new rule. * @param rule The rule. */ public void addRule(IRule<?> rule) { if(rule.getEvents()==null || rule.getEvents().size()==0) throw new RuntimeException("Rule must have events: "+rule); if(rules==null) rules = new HashMap<String, IRule<?>>(); if(matcher==null) matcher = new MatcherNode(); if(rules.containsKey(rule.getName())) throw new IllegalArgumentException("Rule names must be unique: "+rule.getName()); rules.put(rule.getName(), rule); matcher.addRule(rule); // System.out.println("added rule: "+rule+" "+rule.getEvents()); // System.out.println("evrules: "+evrules); }
/** * Add a rule to the matcher. * @param rule The rule. */ public void addRule(IRule<?> rule) { for(EventType type: rule.getEvents()) { addRule(type, rule, 0); } }
if(rules[i].getCondition()!=null) rules[i].getCondition().evaluate(event).addResultListener(new IResultListener<Tuple2<Boolean,Object>>()
IFuture fut = (IFuture<Object>)rules[i].getAction().execute(event, (IRule)rules[i], context, result.getSecondEntity());
public IFuture<Void> execute(IEvent event, IRule<Void> rule, Object context, Object condresult) { // Remove rule and continue after wait bdif.getRuleSystem().getRulebase().removeRule(rule.getName()); ret.setResult(null); return IFuture.DONE; } });
/** * Remove a rule from the matcher. * @param rule The rule. */ public void removeRule(IRule<?> rule) { for(EventType type: rule.getEvents()) { removeRule(type, rule, 0); } }
public IFuture<Void> execute(IEvent event, IRule<Void> rule, Object context, Object condresult) { // Remove rule and continue after wait bdif.getRuleSystem().getRulebase().removeRule(rule.getName()); ret.setResult(null); return IFuture.DONE; } });
for(int i=0; i<rls.length; i++) rulebase.removeRule(rls[i].getName());