drools 包名 (Fluent api)
drools package name (Fluent api)
我正在尝试使用 Fluent Api 在 java 中创建规则。实际上,我已经以我喜欢的方式成功创建了规则,但是我找不到不添加包名称来创建规则的方法。
Java代码:
PackageDescr pkg = DescrFactory.newPackage()
.name("org.drools.example")
.newRule().name("Xyz")
.attribute("ruleflow-grou","bla")
.lhs()
.and()
.pattern("Foo").id( "$foo", false ).constraint("bar==baz").constraint("x>y").end()
.not().pattern("Bar").constraint("a+b==c").end().end()
.end()
.end()
.rhs( "System.out.println();" ).end()
.getDescr();
DrlDumper dumper = new DrlDumper();
String drl = dumper.dump(pkg);
DRL 文件:
package org.drools.example ---> I do not want this to be included
rule "Xyz"
ruleflow-grou bla
when
(
$foo : Foo( bar==baz, x>y ) and
not(
Bar( a+b==c ) ) )
then
System.out.println();
end
提前致谢。
注意:我使用的是 eclipse 默认安装的 Drools 7.3.0
您可以对所有规则重复使用相同的 PackageDescrBuilder
。完成一条规则后,只需调用 end().newRule()
即可开始另一条规则:
PackageDescr pkg = DescrFactory.newPackage()
.name("org.drools.example")
.newRule().name("Rule 1")
.attribute("ruleflow-grou","bla")
.lhs()
.and()
.pattern("Foo").id( "$foo", false).constraint("bar==baz").constraint("x>y")
.end()
.not().pattern("Bar").constraint("a+b==c")
.end().end()
.end()
.end()
.rhs( "System.out.println();" ).end()
.newRule().name("Rule 2") // <--- Here starts the new rule
.lhs()...end()
.rhs()...end()
.getDescr();
希望对您有所帮助,
我正在尝试使用 Fluent Api 在 java 中创建规则。实际上,我已经以我喜欢的方式成功创建了规则,但是我找不到不添加包名称来创建规则的方法。
Java代码:
PackageDescr pkg = DescrFactory.newPackage()
.name("org.drools.example")
.newRule().name("Xyz")
.attribute("ruleflow-grou","bla")
.lhs()
.and()
.pattern("Foo").id( "$foo", false ).constraint("bar==baz").constraint("x>y").end()
.not().pattern("Bar").constraint("a+b==c").end().end()
.end()
.end()
.rhs( "System.out.println();" ).end()
.getDescr();
DrlDumper dumper = new DrlDumper();
String drl = dumper.dump(pkg);
DRL 文件:
package org.drools.example ---> I do not want this to be included
rule "Xyz"
ruleflow-grou bla
when
(
$foo : Foo( bar==baz, x>y ) and
not(
Bar( a+b==c ) ) )
then
System.out.println();
end
提前致谢。
注意:我使用的是 eclipse 默认安装的 Drools 7.3.0
您可以对所有规则重复使用相同的 PackageDescrBuilder
。完成一条规则后,只需调用 end().newRule()
即可开始另一条规则:
PackageDescr pkg = DescrFactory.newPackage()
.name("org.drools.example")
.newRule().name("Rule 1")
.attribute("ruleflow-grou","bla")
.lhs()
.and()
.pattern("Foo").id( "$foo", false).constraint("bar==baz").constraint("x>y")
.end()
.not().pattern("Bar").constraint("a+b==c")
.end().end()
.end()
.end()
.rhs( "System.out.println();" ).end()
.newRule().name("Rule 2") // <--- Here starts the new rule
.lhs()...end()
.rhs()...end()
.getDescr();
希望对您有所帮助,