Jboss Drools模板头参数

Jboss Drools模板头参数,jboss,drools,mvel,Jboss,Drools,Mvel,我正在做一个项目,使用模板生成我的所有规则。但是我有一个问题,我想将我的参数作为ArrayList解析到模板中,并执行如下操作: template header ruleId args package dk.prks import com.poc.entity.Bill; import com.poc.entity.BillLine; import com.poc.entity.Description; import java.util.ArrayList; template "01

我正在做一个项目,使用模板生成我的所有规则。但是我有一个问题,我想将我的参数作为ArrayList解析到模板中,并执行如下操作:

template header

 ruleId
 args

package dk.prks 
import com.poc.entity.Bill;
import com.poc.entity.BillLine;
import com.poc.entity.Description;
import java.util.ArrayList;

template "01"


rule "@{ruleId}_@{row.rowNumber}"
  dialect "mvel" 
    when 
      $bill : Bill ($line : lines) and
      BillLine( service == @{args.get(0)}, $lineNr : lineNr) from $line and
      BillLine( service == @{args.get(1)}, lineNr < $lineNr) from $line          
    then
      $bill.setColor(1);

end

end template
模板头
规则ID
args
包装dk.prks
导入com.poc.entity.Bill;
导入com.poc.entity.BillLine;
导入com.poc.entity.Description;
导入java.util.ArrayList;
模板“01”
规则“@{ruleId}{row.rowNumber}”
方言“mvel”
什么时候
$bill:bill($line:line)和
BillLine(服务==@{args.get(0)},$lineNr:lineNr)来自$line和
BillLine(服务==@{args.get(1)},lineNr<$lineNr)来自$line
然后
$bill.setColor(1);
结束
端模板

然而,这是不可能的。此外,我希望扩展性能是一个问题,我希望生成的文件只包含列表中的值,并且在运行我的规则时不在数组中进行任何查找

我对drools模板没有太多经验,但据我所知,没有太多的“魔力”。如果出于某种原因您不能使用drools模板,我建议您使用另一种模板机制/框架,如velocity、antlr stringtemplate等。好吧,使用drools模板的选择确实不是我能做的,但您是对的,目前还不太受支持。。