Drools dslr - 传递列表

Drools dslr - passing a list

在 dslr 中,您能否将值列表传递给条件或 Drools 仅限于一个值?

我想写这样的东西:

[condition][]The customer firstName is in this list {nameList}=...

而不是

[condition][]The customer firstName is {name1} or {name2} or {name3}=...

适合的 DRL 构造是使用 "in" 的复合限制,例如写成

Person( name in ("Joe", "Tom", "Fred") )

在您的情况下,DSLR 定义应该是

[condition][]The customer firstName is in this list {nameList}=
    Customer( firstName in ({nameList}) )

请注意,在 DSL 中,您必须将名称用引号括起来:

The customer firstName is in this list "Joe","Tom","Fred"