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/java/org/drools/base/evaluators/BigDecimalFactory.java != 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 <[EMAIL PROTECTED]>:
On a similiar note what if you do: BigDecimal != 0 On 7/9/07, Ronald R. DiFrango <[EMAIL PROTECTED] > wrote: > > Thanks Edson! > > Does the equals methods compare the underlying values or the object > references? > > On 7/9/07, Edson Tirelli < [EMAIL PROTECTED]> 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 <[EMAIL PROTECTED] >: > > > > > > 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 < [EMAIL PROTECTED]> 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@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@lists.jboss.org > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > _______________________________________________ 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
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users