Creates a Timeline (see Handling Data that Changes Over Time) of a given type, with values valid from specified dates.
A timeline must have a value from the start-of-time (the null date), and so to assist with this, the Timeline expression contains an optional initialvalue element to specify the value from the start-of-time. If not used, then the collection of Interval used must contain an interval with a null start date, otherwise an error will occur if this expression is evaluated at runtime.
<?xml version="1.0" encoding="UTF-8"?>
<RuleSet name="Example_Timeline"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"http://www.curamsoftware.com/CreoleRulesSchema.xsd">
<Class name="CreateTimelines">
<!-- This example uses <initialvalue> to set the value valid
from the start of time. -->
<Attribute name="aNumberTimeline">
<type>
<javaclass name="curam.creole.value.Timeline">
<javaclass name="Number"/>
</javaclass>
</type>
<derivation>
<Timeline>
<intervaltype>
<javaclass name="Number"/>
</intervaltype>
<!-- Value from start of time -->
<initialvalue>
<Number value="0"/>
</initialvalue>
<!-- The remaining intervals -->
<intervals>
<fixedlist>
<listof>
<javaclass name="curam.creole.value.Interval">
<javaclass name="Number"/>
</javaclass>
</listof>
<members>
<Interval>
<intervaltype>
<javaclass name="Number"/>
</intervaltype>
<start>
<Date value="2001-01-01"/>
</start>
<value>
<Number value="10000"/>
</value>
</Interval>
<Interval>
<intervaltype>
<javaclass name="Number"/>
</intervaltype>
<start>
<Date value="2004-12-01"/>
</start>
<value>
<Number value="12000"/>
</value>
</Interval>
</members>
</fixedlist>
</intervals>
</Timeline>
</derivation>
</Attribute>
<!-- This example does not use <initialvalue>. -->
<Attribute name="aStringTimeline">
<type>
<javaclass name="curam.creole.value.Timeline">
<javaclass name="String"/>
</javaclass>
</type>
<derivation>
<Timeline>
<intervaltype>
<javaclass name="String"/>
</intervaltype>
<!-- The list of intervals must include one valid from the
null date (start of time), otherwise an error will
occur at runtime, if this expression is evaluated. -->
<intervals>
<fixedlist>
<listof>
<javaclass name="curam.creole.value.Interval">
<javaclass name="String"/>
</javaclass>
</listof>
<members>
<Interval>
<intervaltype>
<javaclass name="String"/>
</intervaltype>
<start>
<!-- "from the start of time" -->
<null/>
</start>
<value>
<String value="Start of time string"/>
</value>
</Interval>
<Interval>
<intervaltype>
<javaclass name="String"/>
</intervaltype>
<start>
<Date value="2001-01-01"/>
</start>
<value>
<String value="2001-only String"/>
</value>
</Interval>
<Interval>
<intervaltype>
<javaclass name="String"/>
</intervaltype>
<start>
<Date value="2002-01-01"/>
</start>
<value>
<String value="2002-onwards String"/>
</value>
</Interval>
</members>
</fixedlist>
</intervals>
</Timeline>
</derivation>
</Attribute>
</Class>
</RuleSet>