D) Custom rule classes for eligibility/entitlement

When the Engine calculates eligibility/entitlement results for a product period, the Engine first asks the product period which rule class should be used (which is recorded on the product period as part of setting up a product).

The rule class specified on the product period must ultimately extend from the ProductEligibilityEntitlementRuleSet.AbstractCase interface rule class. For ease of upgrades, it is recommended that the rule class extends the DefaultProductEligibilityEntitlementRuleSet.DefaultCase rule class which provides default implementations.

The rule class must provide implementations of the isEligibleTimeline and objectiveTimelines rule attributes, which is where the bulk of the implementation effort for eligibility/entitlement calculations will lie (and in fact this effort may form the bulk of the overall product implementation). See Write the Case Eligibility/Entitlement Calculation Rule Classes for more details on the work involved in implementing these attributes.

If the product has different product periods, due to a change in legislation that affects how eligibility and/or entitlement is calculated, then each product period will be configured to use a different rule class.