Extending the Decision Details Rule Set

As identified above, the decision details rule set should contain a class which extends DefaultProductDecisionDetailsRuleSet.DefaultCase, as shown below:

<Class
  extends="DefaultCase"
  extendsRuleSet="DefaultProductDecisionDetailsRuleSet"
  name="SimpleProductDecisionDetails"
>
...
...

For the subscreen content, the rule set should contain a class which extends DefaultProductDecisionDetailsRuleSet.DefaultCaseSubscreenDisplay, as shown below:

<Class
  extends="DefaultCaseSubscreenDisplay"
  extendsRuleSet="DefaultProductDecisionDetailsRuleSet"
  name="SimpleProductObjectiveTimelineSubscreen"
>
...
...

So that the rule set can retrieve the necessary information to display on the decision summary screen and associated subscreens, it should contain the following key attributes:

Table 1. Description of attributes required by display rule set
Attribute Description
isEligibleTimeline To determine whether the client is eligible / ineligible, the rule set should contain an attribute which will reference the isEligibleTimeline attribute on the eligibility and entitlement rule set. The attribute is named similarly here for simplicity. This attribute will live on the AbstractSimpleProductDecisionDetails class and will need to include a Display annotation.
displayObjectiveTimelines To retrieve the list of objectives the client is entitled to, the rule set should contain an attribute which will reference the objectiveTimelines attribute on the eligibility and entitlement rule set. As there is no business data (like concernRoleID, for example) that can distinguish each individual element in the list, the businessObjectID will instead be derived from the index of each element in the list. Again, this attribute will live on the AbstractSimpleProductDecisionDetails class and will need to include a Display annotation.
displayObjectiveTimelineSubscreens The AbstractSimpleProductDecisionDetails class will also need to contain an attribute for listing the subscreens for the objectives. This will need to contain a DisplayScreen annotated to signify that it is for subscreen display.
businessObjectID The SimpleProductObjectiveTimelineSubscreen class needs to contain a businessObjectID attribute which will be derived from the index of the list of objectives (displayObjectiveTimelines).
displayTagTimelines As the subscreen needs to display the list of tags for each objective, the SimpleProductObjectiveTimelineSubscreen also needs to contain an attribute which will be derived from the objective tag timelines related to each objective timeline. This attribute also needs to include a Display annotation.