The Determination Result (described in I) DeterminationResult) also holds the decision details for the case, as determinationDecisionDetailsTimelines. determinationDecisionDetailsTimelines is a map from each display category to a timeline of XML data (which holds the varying decision detail data for that display category).
Each product period can contribute to the XML data for a particular display category. If a product period does not have rules configured for a particular display category, then for the period of time that the product period contributes to the case's determination, the XML data will be empty and no decision details can be displayed for that period.
The Engine calculates the XML data for a product period's contribution to a display category by starting with a rule object created for that product period/display category, and then "walking" the values on that rule object to gather XML data as follows:
If the value is a timeline, then inspect the timeline value to find the dates on which it changes value, and contribute these dates to the overall change dates.
If the value is another rule object (which has not yet been walked), then recurse to inspect its Display attributes and add their change dates to the overall change dates.
If the value is a list of rule objects or Timelines, then each item in the list is checked to identify change dates to contribute to the overall change dates.
If the value type is not a Timeline, Rule Object or List then it does not contribute to the overall change dates.