/** * Returns the subscription, if any, for the specified tariff and customer. * Does not create a subscription in case it cannot be found in the repo. */ public TariffSubscription findSubscriptionForTariffAndCustomer (Tariff tariff, CustomerInfo customer) { List<TariffSubscription> subs = findSubscriptionsForTariff(tariff); if (subs == null) return null; for (TariffSubscription sub : subs) { if (sub.getCustomer() == customer) return sub; } return null; }
/** * Exercises an economic control for the current timeslot. */ void exerciseEconomicControl (EconomicControlEvent event) { Tariff tariff = tariffRepo.findTariffById(event.getTariffId()); if (null == tariff) { // should not happen log.error("Null tariff " + event.getTariffId() + " for economic control"); return; } List<TariffSubscription> subs = tariffSubscriptionRepo.findSubscriptionsForTariff(tariff); for (TariffSubscription sub : subs) { sub.postRatioControl(event.getCurtailmentRatio()); } }
filter(tariffSubscriptionRepo.findSubscriptionsForTariff(tariff), new Predicate<TariffSubscription> () { @Override
@Override public RegulationAccumulator getRegulationCapacity (BalancingOrder order) { Tariff tariff = tariffRepo.findTariffById(order.getTariffId()); if (null == tariff) { // broker error, most likely log.warn("Null tariff " + order.getTariffId() + " for balancing order"); return new RegulationAccumulator(0.0, 0.0); } RegulationAccumulator result = new RegulationAccumulator(0.0, 0.0); List<TariffSubscription> subs = tariffSubscriptionRepo.findSubscriptionsForTariff(tariff); for (TariffSubscription sub : subs) { result.add(sub.getRemainingRegulationCapacity()); } log.info("BalancingOrder " + order.getId() + " capacity = (" + result.getUpRegulationCapacity() + "," + result.getDownRegulationCapacity() + ")"); return result; }
tariffSubscriptionRepo.findSubscriptionsForTariff(tariff);
tariffSubscriptionRepo.findSubscriptionsForTariff(tariff)) { sub.postRatioControl(event.getCurtailmentRatio());