lpic
lpic

Reputation: 560

drools rule for fact with list values and multiple conditions

i am attempting to write a rule that will compare a fact list values to a multiple condition rule

rule: only valid legislations
when
 fact:Fact (legislationList == ('L1' && 'L2') OR 'L3')
then
 fact.printMessage();
end

ie. if fact.legislationList={'L1', 'L2') then fire
    if fact.legislationList={'L1', 'L4') then dont fire

i looked at the 'from' clause but wasnt clear how that would solve my issue.

is there some voodoo method/solution that will help me?

thanks

-lp

Upvotes: 2

Views: 6217

Answers (1)

Esteban Aliverti
Esteban Aliverti

Reputation: 6322

Assuming that legislationList is a List<String>, then you could use Drools' 'contains' operator:

rule: only valid legislations
when
    fact:Fact ((legislationList contains "L1" && legislationList contains "L2") || legislationList contains "L3" )
then
    fact.printMessage();
end

You can abbreviate the syntax a bit, but I wanted to be explicit.

Hope it helps,

Upvotes: 3

Related Questions