2014-09-15 2 views
0

Я пытаюсь вернуть числа ретрактов, которые выполняются при выполнении слюни.Drools Execution, get number retracted

я могу получить число выполнений:

... 
final Command fireAllRulesCmd = CommandFactory.newFireAllRules("executed-rules"); 
cmds.add(fireAllRulesCmd); 
... 
session.execute(CommandFactory.newBatchExecution(cmds)); 
final Integer executedRules = (Integer) execute.getValue("executed-rules"); 
.... 

Есть ли подобный способ получить все «убранные-правила»?

Спасибо!

С уважением

ответ

1

Реализовать org.kie.api.event.kiebase.KieBaseEventListener и в методе afterRuleRemoved считать события:

class MyKieBaseEventListener implements KieBaseEventListener { 
    private int removedRules; 
    public void afterRuleRemoved(AfterRuleRemovedEvent event){ 
     removedRules++; 
    } 
    public int getRemovedRules(){ 
     return removedRules; 
    } 
    // other methods 
} 

Вы должны прикрепить этот приемник к KieBase.

kieBase.addEventListener(new MyKieBaseEventListener()); 
+0

Я использую версию 5.4.0.Final of drools, KieBaseEventListener - это то же самое, что KnowledgeAgentEventListener? Благодаря!!! – Ganchix

+0

В 5.4 именами являются KnowledgeBase ... в 'org.drools.event.knowledgebase' – laune

+0

Спасибо всем! – Ganchix