Detailed Behavior

Each instance of combineSuccessionSets must:

When an instance of combineSuccessionSets is evaluated, a rule object of the nominated return rule class is created. The attribute values on this return rule object will be set by matching their names to those on the input succession set rule objects being combined.

For periods of time not covered by the input succession set rule objects (i.e. for the "gaps" between periods, or the values used if the input list is empty), then default values will be used as shown in the following table:

Table 1. Mapping from Cúram Domain Types to CER Rule Attribute Types

Data type for succession set attribute used as an input timeline

Default value, used for "gaps" between input succession sets

Timeline<Number>

0

Timeline<Boolean>

false

Timeline<Code table entry>

null (not-specified) entry from the code table

(any other data type)

null

If the input list of succession set of rule objects is empty (e.g. a person who has never been absent from their household), then the default values shown above will be used throughout the entire timelines.

The combineSuccessionSets expression applies validations when the rule set is validated, and also when the expression is evaluated, as described in the following sections.

Validation checks made when the rule set is validated

Each instance of combineSuccessionSets will be checked to ensure that it meets the following constraints:

If the above conditions are not met, then the rule set will not pass validation checks.

Validation checks made when combineSuccessionSets is evaluated

When an instance of combineSuccessionSets is evaluated at run time, each rule object for a contributing succession set being combined must:

If the above conditions are not met, then combineSuccessionSets throws an appropriate exception.