Calculates the numerical sum of a list of Number values.
If the list is empty, this expression returns 0.
The list of Number values is typically provided by a fixedlist or dynamiclist.
<?xml version="1.0" encoding="UTF-8"?>
<RuleSet name="Example_sum"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://www.curamsoftware.com/CreoleRulesSchema.xsd">
<Class name="Person">
<Attribute name="netWorth">
<type>
<javaclass name="Number"/>
</type>
<derivation>
<!-- Example of <sum> operating on a <fixedlist> -->
<!-- A person's net worth is the sum of their
cash, savings and assets -->
<sum>
<fixedlist>
<listof>
<javaclass name="Number"/>
</listof>
<members>
<reference attribute="totalCash"/>
<reference attribute="totalSavings"/>
<reference attribute="totalAssets"/>
</members>
</fixedlist>
</sum>
</derivation>
</Attribute>
<Attribute name="totalAssets">
<type>
<javaclass name="Number"/>
</type>
<derivation>
<!-- Example of <sum> operating on a <dynamiclist> -->
<!-- The total value of a person's assets is derived by
summing the value of each asset -->
<sum>
<dynamiclist>
<list>
<reference attribute="assets"/>
</list>
<listitemexpression>
<reference attribute="value">
<current/>
</reference>
</listitemexpression>
</dynamiclist>
</sum>
</derivation>
</Attribute>
<!-- The assets of that this person owns -->
<Attribute name="assets">
<type>
<javaclass name="List">
<ruleclass name="Asset"/>
</javaclass>
</type>
<derivation>
<specified/>
</derivation>
</Attribute>
<!-- NB this example doesn't show how
total cash/savings is derived -->
<Attribute name="totalCash">
<type>
<javaclass name="Number"/>
</type>
<derivation>
<specified/>
</derivation>
</Attribute>
<Attribute name="totalSavings">
<type>
<javaclass name="Number"/>
</type>
<derivation>
<specified/>
</derivation>
</Attribute>
</Class>
<Class name="Asset">
<!-- The monetary value of the asset -->
<Attribute name="value">
<type>
<javaclass name="Number"/>
</type>
<derivation>
<specified/>
</derivation>
</Attribute>
</Class>
</RuleSet>