@Override public DefaultPlan findPlan(final Product product, final BillingPeriod period) { for (final DefaultPlan cur : getPlans()) { if (cur.getProduct().equals(product) && (cur.getBillingPeriod() == null || cur.getBillingPeriod().equals(period))) { return cur; } } return null; }
private int findNumberOfPlans(final Product product, final BillingPeriod period) { int count = 0; for (final DefaultPlan cur : getPlans()) { if (cur.getProduct().equals(product) && (cur.getBillingPeriod() == null || cur.getBillingPeriod().equals(period))) { count++; } } return count; }
@Override public ValidationErrors validate(final StandaloneCatalog catalog, final ValidationErrors errors) { for (final DefaultPlan cur : getPlans()) { final int numPlans = findNumberOfPlans(cur.getProduct(), cur.getBillingPeriod()); if (numPlans > 1) { errors.add(new ValidationError( String.format("There are %d plans in pricelist %s and have the same product/billingPeriod (%s, %s)", numPlans, getName(), cur.getProduct().getName(), cur.getBillingPeriod()), catalog.getCatalogURI(), DefaultPriceListSet.class, getName())); } } return errors; }