Brian,
Maybe you have equals() method implemented in the class? "==" will call equals() method on the objects...
I assume you are using 4.0.1 or later (snapshot).
[]s
Edson
2007/9/25, Brian Enderle <brianke@gmail.com>:
I have 3 Rfrnc objects that I would like to compare and return a message if
the firstNm, middleNm and lastNm of two objects match. I set up the Rfrnc
objects with the names "Brian A Enderle", "Brian B Enderle" and "Brian C
Enderle" and created the following rule (with the intent of building up to
checking first, middle and last name).
rule "LevelTwo: Duplicate Reference check"
agenda-group "LevelTwo"
when
$i : Rfrnc($firstNm : firstNm, $middleNm : middleNm, $lastNm :
lastNm)
$j : Rfrnc(this != $i, firstNm == $firstNm)
then
System.out.println
("Duplicate refernce found: " +
$i.getMiddleNm() + $i.getLastNm() + ":" + $j.getMiddleNm() + $j.getLastNm());
end
This produces the following output (which is what I would expect):
Duplicate refernce found: CEnderle:BEnderle
Duplicate refernce found: BEnderle:CEnderle
Duplicate refernce found: CEnderle:AEnderle
Duplicate refernce found: AEnderle:CEnderle
Duplicate refernce found: AEnderle:BEnderle
Duplicate refernce found: BEnderle:AEnderle
While doing some testing I changed "Brian B Enderle" to "Brian A Enderle" so
that now I have two Rfrnc objects with the name of "Brian A Enderle". When I
rerun the same rule from above I get the following output:
Duplicate refernce found: CEnderle:AEnderle
Duplicate refernce found: AEnderle:CEnderle
Duplicate refernce found: AEnderle:CEnderle
Duplicate refernce found: CEnderle:AEnderle
What I don't understand is why do I not have any return statements
of "Duplicate reference found AEnderle:AEnderle". I would expect 2 of these
messages, one for when the first "Brian A Enderle" object is compared to the
second and vice versa.
Is the "$i == this" condition checking values within the object itself? Am I
missing something here as to how this rule should work?
Thanks in advance,
Brian Enderle
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @ www.jboss.com