我有以下特定要求在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对象与规则结合起来,但不知道如何做到这一点。任何人都可以帮忙吗?
提前致谢。
答案 0 :(得分:1)
在规则的RHS中有一个名为kcontext
的神奇变量(RuleContext
的一个实例),它支持kcontext.getMatch().getObjects()
。
或许您正在寻找Session接口上可用的迭代器方法,它迭代工作内存中的所有事实?