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