2013-07-17 57 views
0

我有以下具體要求在Drools中實施。不知道如何做到這一點。如果有人知道給我一個方向。Drools如何獲取規則執行的對象?

在我的項目中流口水規則是關聯到一個java類。規則被定義爲類中的字符串列表。我有這些類對象的列表,我需要執行這些類的規則。我使用下面的代碼來添加規則。想象一下,「測試」班有規則。

for (Test test : testList) { 
       List<String> rules = test.getRules(); 
       if (rules != null) { 
        for (String rule : rules) { 
         System.out.println("Added Rule..."); 
         knowledgeBuilder.add(ResourceFactory.newByteArrayResource(rule.getBytes()), ResourceType.DRL); 
        } 
       } 
      } 

爲事實「測試」對象列表和其他所需的對象將被添加。規則正在執行中沒有問題。現在我需要獲得規則成功的特定「測試」對象。有人有一個想法如何做到這一點?我認爲應該有一種機制將Test對象與規則結合起來,但不知道如何去做。任何人都可以幫忙嗎?

在此先感謝。

回答

1

在規則的RHS有一個神奇的變量稱爲kcontext(的RuleContext一個實例),它支持kcontext.getMatch().getObjects()

或者你正在尋找Session接口上的迭代器方法,它遍歷工作內存中的所有事實?