equals

Dieser Ausdruck ermittelt, ob zwei Objekte (ein Objekt auf der linken Seite und ein Objekt auf der rechten Seite) identisch sind.

Werte des Typs Number werden vor dem Vergleich von CER in das eigene numerische Format (gestützt auf java.math.BigDecimal) konvertiert. Unterschiede bei führenden oder abschließenden Nullen werden ignoriert.

Werte null werden problemlos verglichen. Falls der Wert auf der linken Seite und der Wert auf der rechten Seite null ist, gibt der Ausdruck equals das Ergebnis true zurück. Ist nur einer der Werte auf der linken Seite und der rechten Seite null, gibt der Ausdruck equals das Ergebnis false zurück.

<?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>