Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

An implementation of the SurplusContainerFetcher interface is responsible for creation of SurplusContainer objects. Bundle The used implementation is defined in the bundle parameter ROLLOVER.SURPLUS.FETCHER. Its value should be a name of the class that implements the SurplusContainerFetcher interface. If the parameter is not present DefaultSurplusContainerFetcher is used. It provides the functionality described on this page. The other option provided by the core is AllSubscriptionBundlesOnDate that fetches all SubscriptionBundles active on the charge date

Implementation NameLogicNotes

DefaultSurplusContainerFetcher

Implements the logic described on this page.

This implementation is used if the bundle parameter ROLLOVER.SURPLUS.FETCHER is not defined.

Warning 1: This implementation only works if the subscription bundle's bundle uses the 'recurrence_id' when calculating the periods its subscription bundles cover. Behavior is undefined if it doesn't.

Warning 2: This implementation only works if the subscription bundle's bundle is of the type {@link RolloverBundle}. A runtime exception is throw if it isn't.

AllSubscriptionBundlesOnDate

Fetches all subscription bundles (for same subscription campaign and same bundle) that are active on the charge date.

Note: Only subscription bundles that already exist in the database are found by this implementation, no new subscription bundles will be created by this implementation.

Warning: This implementation only works for subscription bundles that use the 'to_date' and 'from_date' fields to indicate the period it covers. Behavior is undefined if the 'period' field is used.

Configuration

In order to configure DataBundle, DurationBundle, EventBundle or ForwardBundle to use rollover functionality the following parameters must be set up in the bundle's parameters and meta data:

...