(1)Agenda Filter:规则过滤
Filter 必须实现 AgendaFilter 接口,用来允许或禁止一个 activation 能够被激发。 Drools 提供了下面几种方便的默认实现:
· RuleNameEndWithAgendaFilter
· RuleNameEqualsAgendaFilter
· RuleNameStartsWithAgendaFilter
要使用一个 filter 就要在调用 fireAllRules() 方法的时候指定它。下面的例子将对所有名字以“ Test ”结尾的规则进行过滤:
workingMemory.fireAllRules( new RuleNameEndsWithAgendaFilter( " Test " ) );
设置过滤条件, 名称为"rule3"的规则将不会被执行。
Filter 必须实现 AgendaFilter 接口,用来允许或禁止一个 activation 能够被激发。 Drools 提供了下面几种方便的默认实现:
· RuleNameEndWithAgendaFilter
· RuleNameEqualsAgendaFilter
· RuleNameStartsWithAgendaFilter
要使用一个 filter 就要在调用 fireAllRules() 方法的时候指定它。下面的例子将对所有名字以“ Test ”结尾的规则进行过滤:
workingMemory.fireAllRules( new RuleNameEndsWithAgendaFilter( " Test " ) );
设置过滤条件, 名称为"rule3"的规则将不会被执行。
private static AgendaFilter filter = new AgendaFilter() {
public boolean accept(Activation activation) {
if (activation.getRule().getName().equals("rule3")) {
return false;
}
return true;
}
};