Drools如何获取规则执行的对象?

时间:2013-07-17 11:26:44

标签: drools

我有以下特定要求在Drools中实施。不知道该怎么做。如果有人知道给我一个方向。

在我的项目中,drool规则与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 个答案:

答案 0 :(得分:1)

在规则的RHS中有一个名为kcontext的神奇变量(RuleContext的一个实例),它支持kcontext.getMatch().getObjects()

或许您正在寻找Session接口上可用的迭代器方法,它迭代工作内存中的所有事实?