[rules-users] Example code to test an object that contains a collection of other objects?

Stephen Masters stephen.masters at me.com
Sun Mar 24 18:48:02 EDT 2013


I suspect you're looking for something a bit like this:

$p : Person( $degrees : degrees )
$d : Degree( name in ("phd", "ms", "jd", "md") ) from $degrees

… apologies for any syntax errors - I haven't tested it. ;)


On 24 Mar 2013, at 21:13, lamenramen <lamenramen at gmail.com> wrote:

> Hi,
> 
> I have read around for an entire day but still can not figure out how to
> write the following in DRL syntax:
> 
> "When a person has a an advanced degree, print 'person is educated'"
> 
> A person has many degrees.  So, I have a Person POJO and a Degree POJO.
> A Person object has a field callled "degrees", which is nothing more than an
> ArrayList<Degree>.
> A degree has nothing but a name field, which is a String.
> 
> In regular java, it would be:
> 
> for (Degree d : person.getDegrees() {
> 
>  if (d == "phd" || d == "ms" || d == "jd" || d == "md") {
>      System.out.println("person is highly educated");
>  }
> 
> }
> 
> I can not do this in the Guvnor either.
> 
> I've tried using a contains keyword but I just can't my rule to fire. 
> Simple rules otherwise fire just fine ,so my plumbing is all wired up
> correctly.  
> 
> 
> 
> 
> 
> --
> View this message in context: http://drools.46999.n3.nabble.com/Example-code-to-test-an-object-that-contains-a-collection-of-other-objects-tp4023010.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users




More information about the rules-users mailing list