Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Checking if an object of a list has some value with drools

I have some problems checking if an object of a list has a value with drools.

My model is this

class Products{
    private List<Approver> approvalPath;
}
class Approver{
    private String employeeName;
}

So, I need to make a rule like this

rule "member"
    when
        //approvalPath has an approver with name "Charles" (for example)
    then
        //do something
end

How can I do it?

like image 227
Carlos López Avatar asked Dec 19 '22 17:12

Carlos López


1 Answers

Here are two versions.

when
  $app: Approver( employeeName == "Charles" )
  Products( approvalPath contains $pp )

And:

when
  Products( $ap: approvalPath )
  Approver( employeeName == "Charles" ) from $ap

Number 1 requires the insertion of Approver objects as facts.

like image 133
laune Avatar answered May 23 '23 13:05

laune