Hi,
Thank you very much for all replies.
I've tried also with not ( EPackage(...)), but the result is the same.
I think that I remove the EClass from the facts in my solution, but they continue in my workingMemory.
How I can see the facts of the workingMemory object (and how remove it)?
Thanks
Best regards
Antonio
Hi Antonio,
Documentation states that the complement to "not" is "exists", whereas "not" keyword is used to match the absence of a fact (in Working Memory), and "exists" keyword is used to test the existence of one or more facts (in Working memory).
So if you want to test that a fact is not in working memory, then you should use the
not(MyClass()) pattern.
Hope this helps,
Francois.
Antonio Neto <antoniosouzaneto@gmail.com> a écrit :
> Any idea? Please...
>
> 2010/5/4 Antonio Neto <antoniosouzaneto@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
>>
>>
>>
>
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users