All,

As you may be aware, JBoss Rules 3.0.x does not support nesting of elements inside a NOT (Conjunctive Negations) or EXISTS node. Also, the nesting of ANDs and ORs is not totally consistent for all cases. We spent the last few weeks working on the full support to arbitrary conditional element nesting. It means now you will be able to nest whatever CE you want inside any other CE. This is an important step in supporting "forall" and improving "accumulate" for Event Stream Processing.

For those of you curious to try it, code is commited. Just checkout from trunk, build and try it. As the change to support this feature was a big one, there may eventually be issues to fix, so if you find one, please report in order to help us have it ready for release.

For one example of things you can do, pretend there is a business rule that says:

"All VIP guests must have Caviar, Cheese and his prefered champagne served in his table".

  The above rule can be easily implemented now in the following way:

rule "Guest's dinner" when
       $gc : GuestCategory( type == "VIP" )
not ( Guest( category = $gc, $table : table, $champ : preferedChampagne )
             not( Caviar( table == $table ) and
                  Cheese( table == $table ) and
                  Champagne( type == $champ, table == $table ) ) )
   then
results.add("All VIP guests are served"); end

I will add "forall" now, that is just syntax sugar for the above structure.

  []s
  Edson

--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3124-6000
Mobile: +55 11 9218-4151
JBoss, a division of Red Hat @ www.jboss.com


_______________________________________________
rules-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-dev

Reply via email to