I have a case where I need to negate only part of the predicates.

RULE1
when:
 c1 : Child()
 c2 : Child(hashCode < c1.hashCode, prop1==c1.prop1, ... propN==c1.propN)
then:
 insert(new Parent(c1, c2));

RULE2
when
 p:Parent()
 c1:Child(this memberOf p)
 not Child(this memberOd p, prop1==c1.prop1, ...propN==c1.propN)
then
 retract(p);

While in rule1 I use a matching criteria to group c1 and c2, in rule2
I want to use the inverse of the same exact criteria to ungroup them.
I dont care which propN no longer holds, as long as the any of the
propN no longer holds. The problem is that I still need the "positive"
this memberOf p. How to solve this problem?

RULE2
when
 p:Parent()
 c1:Child(this memberOf p)
 Child(
         this memberOd p,
         not(prop1==c1.prop1, ...propN==c1.propN)
 )
then
 retract(p);

(afaik, not supported)

any ideas?
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to