如何动态地在Java中构建Drools规则?

时间:2010-06-25 13:57:57

标签: java drools

如何动态地在Java中构建Drools规则而不是提供静态drl文件?

我有一组在xml中定义的匹配规则,我需要解析并能够在运行时重新加载它。有没有办法动态构建Drools规则?无法在文档中找到它。

2 个答案:

答案 0 :(得分:0)

我同意Romain的评论 - 如果你有一些声明形式的规则 - 你可以直接从那里生成代码 - 除非这些规则中隐含了更高阶的逻辑(我不太可能找到),或者你想要从XML中一次性迁移到规则语言。

答案 1 :(得分:0)

我同意以前的答案和评论,即规则是“静态”部分。当按需动态创建规则时,规则引擎的使用是值得怀疑的。但是,有些情况下,drools无法提供开箱即用的格式/格式规则。在这种情况下,需要在初始化阶段编程规则地创建规则。

这些事情说,以下是如何将规则(以字符串形式给出)添加到drools中。

public void addRule(String myRuleStatement, String myPackage, RuleBase myRuleBase ) {
    PackageBuilder packageBuilder = new PackageBuilder(new Package(myPackage));
    packageBuilder.addPackgeFromDrl( new StringReader( myRuleStatement ) );
    myRuleBase.addPackage ( packageBuilder.getPackage() );
}