Determines whether two objects (a left-hand-side object and a right-hand-side object) are equal.
Number values are converted to CER's own numerical format (backed by java.math.BigDecimal) before comparison; differences in leading or trailing zeros are ignored.
null values are compared safely; if both left hand side and right hand side are null, then the equals expression returns true; if only one of the left hand side and right hand side values are null, then the equals expression returns false.
<?xml version="1.0" encoding="UTF-8"?>
<RuleSet name="Example_equals"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://www.curamsoftware.com/CreoleRulesSchema.xsd">
<Class name="EqualsExampleRuleClass">
<!-- TRUE -->
<Attribute name="identicalStrings">
<type>
<javaclass name="Boolean"/>
</type>
<derivation>
<equals>
<String value="A String"/>
<String value="A String"/>
</equals>
</derivation>
</Attribute>
<!-- FALSE -->
<Attribute name="differentStrings">
<type>
<javaclass name="Boolean"/>
</type>
<derivation>
<equals>
<String value="A String"/>
<String value="A different String"/>
</equals>
</derivation>
</Attribute>
<!-- TRUE -->
<Attribute name="identicalNumbers">
<type>
<javaclass name="Boolean"/>
</type>
<derivation>
<equals>
<!-- These numbers are the same,
disregarding trivial
differences in leading/trailing
zeroes -->
<Number value="123"/>
<Number value="000123.000"/>
</equals>
</derivation>
</Attribute>
<!-- FALSE -->
<Attribute name="differentTypes">
<type>
<javaclass name="Boolean"/>
</type>
<derivation>
<equals>
<!-- These objects are of
different types, so are
not equal even if they
"look" the same.-->
<String value="123"/>
<Number value="123"/>
</equals>
</derivation>
</Attribute>
<!-- FALSE -->
<Attribute name="oneNull">
<type>
<javaclass name="Boolean"/>
</type>
<derivation>
<equals>
<null/>
<Number value="456"/>
</equals>
</derivation>
</Attribute>
<!-- TRUE -->
<Attribute name="twoNulls">
<type>
<javaclass name="Boolean"/>
</type>
<derivation>
<equals>
<null/>
<null/>
</equals>
</derivation>
</Attribute>
</Class>
</RuleSet>