package policy.price; import java.util.List; import foundation.dao.preload.Bucket; import foundation.json.IJSONWriter; public class DomainPolicy { private String customerId; private Bucket priceList; private Bucket onsiteList; public DomainPolicy() { priceList = new Bucket(); onsiteList = new Bucket(); } public DomainPolicy(String customerId) { this.customerId = customerId; priceList = new Bucket(); onsiteList = new Bucket(); } public void loadOnePriceListLine(PriceLine priceLine) { priceLine.setDomainPolicy(this); priceList.loadOne(priceLine.getId(), priceLine); } public void loadOneOnsiteDiscount(OnsiteLine onsiteLine) { onsiteLine.setDomainPolicy(this); onsiteList.loadOne(onsiteLine.getId(), onsiteLine); } public void removeOnePriceListLine(String id) { priceList.remove(id); } public void removeOneOnsiteDiscount(String id) { onsiteList.remove(id); } public Bucket getPriceBucket() { return priceList; } public List getPriceList() { return priceList.getList(); } public void getOnePrice(PriceSelector selector) { for (PriceLine line: priceList) { if (!line.isAlive()) { continue; } selector.loadOne(line); } } public Bucket getOnsiteBucket() { return onsiteList; } public List getOnsiteList() { return onsiteList.getList(); } public String getCustomerId() { return customerId; } public void writeJSONPriceBody(IJSONWriter writer) { for (PriceLine price: priceList) { price.writeJSON(writer); } } public void writeJSONOnsiteBody(IJSONWriter writer) { for (OnsiteLine onsite: onsiteList) { onsite.writeJSON(writer); } } }