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