diff --git a/usage/src/main/java/org/killbill/billing/usage/plugin/api/UsageContext.java b/usage/src/main/java/org/killbill/billing/usage/plugin/api/UsageContext.java index 938ea13..0df2d2c 100644 --- a/usage/src/main/java/org/killbill/billing/usage/plugin/api/UsageContext.java +++ b/usage/src/main/java/org/killbill/billing/usage/plugin/api/UsageContext.java @@ -17,6 +17,11 @@ package org.killbill.billing.usage.plugin.api; +import java.util.Map; +import java.util.Set; +import java.util.UUID; + +import org.joda.time.DateTime; import org.joda.time.LocalDate; import org.killbill.billing.invoice.api.DryRunType; import org.killbill.billing.util.callcontext.TenantContext; @@ -25,6 +30,27 @@ public interface UsageContext extends TenantContext { // Specify the type of dry-run operation or null otherwise DryRunType getDryRunType(); + // Specify targetDate Associated with the invoice run LocalDate getInputTargetDate(); + + /** + * Returns the billing transition times per (subscriptionId, unit-type CSV) pair for the + * current invoice run, or {@code null} if this information was not provided. + *
+ * Previously this data was smuggled through as a plugin property keyed + * {@code USAGE_TRANSITIONS}. Exposing it as a typed accessor on {@code UsageContext} lets + * usage plugins consume it without depending on an undocumented property name, and without + * the overhead of serialising and deserialising an arbitrary {@code Object}. + *
+ * The map key is a {@code Map.Entry
+ * The default implementation returns {@code null} for backwards compatibility with existing
+ * {@code UsageContext} implementations.
+ */
+ default Map