0

我有以下特定要求要在 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 对象与规则结合起来,但不知道该怎么做。任何人都可以帮忙吗?

提前致谢 。

4

1 回答 1

1

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

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

于 2013-07-17T12:14:35.763 回答