[rules-users] how "exists" works exactly?

Antonio Neto antoniosouzaneto at gmail.com
Wed May 5 04:22:56 EDT 2010


Any idea? Please...

2010/5/4 Antonio Neto <antoniosouzaneto at gmail.com>

> Hi all,
>
> I don't know exactly why I have a problem in my "exists" function. I've
> tried many different ways, but it does not work. Anybody could help me,
> please?
>
>
> I have the following rules:
>
> *rule "diff"
> when
>     $var1: EReference(name == "employee")
>     $var2: EClass(name == "Company", EAllReferences contains $var1)
>     not (exists( EPackage(EClassifiers contains $var2 ) ))
> then
>     insertLogical(new IntConstraintOccurrence("diff", 10));
> end
>
> rule "ClassesNotReferenced"
>     when
>         $q1 : EClass();
>         $q2 : EPackage(EClassifiers contains $q1);
>         not( exists ( EReference(EType == $q1) ));
>     then
>         insertLogical(new IntConstraintOccurrence("ClassesNotReferenced",
> 1, $q1));
> end*
>
>
> and in my facts (and my EPackage) I have 4 instances of EClass "Company"
> with a EReference "employee", and another EClass "Person".  I still have a
> "move" that removes EClasses in my Drools Solver.
>
> I need to have only one classe "Company" after processing. But it removes
> only the EClass "Person", when it was supposed to remove one EClass "Person"
> and 3 ECLasses "Company". Leaving one EClass "Company" in the end.
>
> The problem is:  when Drools tries to remove a EClass "Person" it thinks
> that  the EClass "Company" does not exists. But in fact there are 3 others.
>
> Any clue about it, please ?
>
> Thanks
>
> Bests regards
>
> Antonio
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100505/8c3926c0/attachment.html 


More information about the rules-users mailing list