package org.openstack.atlas.usagerefactor; import org.openstack.atlas.service.domain.entities.Usage; import org.openstack.atlas.service.domain.pojos.LbIdAccountId; import org.openstack.atlas.service.domain.usage.entities.LoadBalancerMergedHostUsage; import java.util.Calendar; import java.util.List; import java.util.Map; import java.util.Set; public interface UsageRollupProcessor { Map<LbIdAccountId, List<LoadBalancerMergedHostUsage>> groupUsagesByLbIdAccountId(List<LoadBalancerMergedHostUsage> loadBalancerMergedHostUsages); /* * @param hourToProcess * Indicates the hour to process usage for. * * Please note, the minutes and seconds are stripped out * so that usages that are processed fall into the indicated hour. Example: * '2013-12-28 13:23:59' corresponds to usage being processed between * '2013-12-28 13:00:00' and '2013-12-28 14:00:00' */ List<Usage> processRecords(List<LoadBalancerMergedHostUsage> loadBalancerMergedHostUsages, Calendar hourToProcess, Set<LbIdAccountId> lbsActiveDuringHour); /* * @param hourToProcess * Indicates the hour to process usage for. * * Please note, the minutes and seconds are stripped out * so that usages that are processed fall into the indicated hour. Example: * '2013-12-28 13:23:59' corresponds to usage being processed between * '2013-12-28 13:00:00' and '2013-12-28 14:00:00' */ List<Usage> processRecordsForLb(Integer accountId, Integer lbId, List<LoadBalancerMergedHostUsage> lbMergedHostUsageRecordsForLoadBalancer, Calendar hourToProcess); }