current

Dieser Ausdruck verweist auf einen Eintrag in einer Liste, der verarbeitet wird.

Der Ausdruck current kann nur innerhalb eines Ausdrucks verwendet werden, der Einträge in einer Liste verarbeitet. Beispiele:

Zur Verdeutlichung können Sie dem Ausdruck current einen Aliasnamen zuweisen, der mit dem Aliasnamen für den Ausdruck list, auf den verwiesen wird, übereinstimmen muss. Aliasnamen sind erforderlich, wenn im Gültigkeitsbereich derselben Berechnung mehrere Ausdrücke current verwendet werden.

<?xml version="1.0" encoding="UTF-8"?>
<RuleSet name="Example_listitem"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation=
"http://www.curamsoftware.com/CreoleRulesSchema.xsd">
  <Class name="Household">

    <Attribute name="members">
      <type>
        <javaclass name="List">
          <ruleclass name="Person"/>
        </javaclass>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <Attribute name="adults">
      <type>
        <javaclass name="List">
          <ruleclass name="Person"/>
        </javaclass>
      </type>
      <derivation>
        <filter>
          <list>
            <reference attribute="members"/>
          </list>
          <listitemexpression>
            <!-- The reference uses current to refer
                   to an item in the list of Person
                   rule objects. -->
            <reference attribute="isAdult">
              <current/>
            </reference>
          </listitemexpression>
        </filter>
      </derivation>
    </Attribute>

  </Class>

  <Class name="Person">

    <Attribute name="children">
      <type>
        <javaclass name="List">
          <ruleclass name="Person"/>
        </javaclass>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <Attribute name="age">
      <type>
        <javaclass name="Number"/>
      </type>
      <derivation>
        <specified/>
      </derivation>
    </Attribute>

    <Attribute name="isAdult">
      <type>
        <javaclass name="Boolean"/>
      </type>
      <derivation>
        <compare comparison=">=">
          <reference attribute="age"/>
          <Number value="18"/>
        </compare>

      </derivation>
    </Attribute>

    <!-- The children of this person who
         are not yet adults. -->
    <Attribute name="dependentChildren">
      <type>
        <javaclass name="List">
          <ruleclass name="Person"/>
        </javaclass>
      </type>
      <derivation>
        <filter>
          <!-- Use an alias to avoid confusion (for human
               readers of the rule set!) between the parent
               Person and the child Person.  -->
          <list alias="child">
            <reference attribute="children"/>
          </list>
          <listitemexpression>
            <not>
              <reference attribute="isAdult">
                <!-- The alias on the current must match
                   that on the list. -->
                <current alias="child"/>
              </reference>
            </not>
          </listitemexpression>
        </filter>
      </derivation>
    </Attribute>

  </Class>

</RuleSet>