Ronald,
Take a look at the class and it will be easy to understand:
http://anonsvn.labs.jboss.com/labs/jbossrules/trunk/drools-core/src/main/...
!= for big decimals is translated to
return ! val1.equals( val2 );
In both cases, it is delegating to the object equals() method, that in
case of BigDecimal, compare values, not references ( identity ).
[]s
Edson
2007/7/9, Ronald R. DiFrango <ron.difrango(a)gmail.com>:
On a similiar note what if you do:
BigDecimal != 0
On 7/9/07, Ronald R. DiFrango <ron.difrango(a)gmail.com > wrote:
>
> Thanks Edson!
>
> Does the equals methods compare the underlying values or the object
> references?
>
> On 7/9/07, Edson Tirelli < tirelli(a)post.com> wrote:
> >
> > Ronald,
> >
> > Yes, this is one way (I would say probably the preferred way) of
> > doing it.
> > For BigDecimals, drools will use equals() method.
> >
> > Look at the BigDecimalFactory class for details.
> >
> > []s
> > Edson
> >
> > 2007/7/9, Ronald R. DiFrango <ron.difrango(a)gmail.com >:
> > >
> > > OK, I think I found it and here is what the rule could look like:
> > >
> > > rule "Repayment Code Requires Approval"
> > > salience 60
> > >
> > > when
> > > repaymentCode : RepaymentCode( code == "MD", matchApprv
==
> > > "Y" )
> > > mdOutput : ModelDiscrepancyOutput( $amt1 : sumRTVQty,
> > > sumCmAndRnr == $amt1)
> > > then
> > > System.out.println("Repayment Code Requires Approval");
> > > processMDAdjustments( drools.getWorkingMemory().getQueryResults(
"MD Adjustments" ),
> > > StatusConstants.APPROVAL);
> > > System.out.println("mdOutput: " + mdOutput);
> > > end
> > >
> > > Now my question is, how does Drools handle these objects and the
> > > comparison because the underlying objects are BigDecimal?
> > >
> > > On 7/9/07, Ronald R. DiFrango < ron.difrango(a)gmail.com> wrote:
> > > >
> > > > All,
> > > >
> > > > I have the following rule:
> > > >
> > > > rule "Repayment Code Requires Approval"
> > > > salience 60
> > > >
> > > > when
> > > > repaymentCode : RepaymentCode( code == "MD",
matchApprv ==
> > > > "Y" )
> > > > mdOutput : ModelDiscrepancyOutput( $amt1 : sumRTVQty,
> > > > $amt2 : sumCmAndRnr)
> > > > eval($amt1.doubleValue() == $amt2.doubleValue())
> > > > then
> > > > System.out.println("Repayment Code Requires
Approval");
> > > >
processMDAdjustments(drools.getWorkingMemory().getQueryResults(
> > > > "MD Adjustments" ), StatusConstants.APPROVAL);
> > > > System.out.println("mdOutput: " + mdOutput);
> > > > end
> > > >
> > > > If I remember correctly, there was going to be an update to the
> > > > rules language that would allow me to eliminate the eval. Is this
true and
> > > > if so what is the syntax that accomplishes this?
> > > >
> > > > Ron
> > > >
> > >
> > >
> > > _______________________________________________
> > > rules-users mailing list
> > > rules-users(a)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
> > _______________________________________________
> > rules-users mailing list
> > rules-users(a)lists.jboss.org
> >
https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
>
_______________________________________________
rules-users mailing list
rules-users(a)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