Details
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPriceListSet.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPriceListSet.java
index 3dfbe13..8c01b12 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPriceListSet.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPriceListSet.java
@@ -26,6 +26,7 @@ import java.util.List;
import org.killbill.billing.ErrorCode;
import org.killbill.billing.catalog.api.BillingPeriod;
import org.killbill.billing.catalog.api.CatalogApiException;
+import org.killbill.billing.catalog.api.Plan;
import org.killbill.billing.catalog.api.PriceList;
import org.killbill.billing.catalog.api.PriceListSet;
import org.killbill.billing.catalog.api.Product;
@@ -34,7 +35,7 @@ import org.killbill.xmlloader.ValidationError;
import org.killbill.xmlloader.ValidationErrors;
@XmlAccessorType(XmlAccessType.NONE)
-public class DefaultPriceListSet extends ValidatingConfig<StandaloneCatalog> {
+public class DefaultPriceListSet extends ValidatingConfig<StandaloneCatalog> implements PriceListSet {
@XmlElement(required = true, name = "defaultPriceList")
private PriceListDefault defaultPricelist;
@@ -103,6 +104,7 @@ public class DefaultPriceListSet extends ValidatingConfig<StandaloneCatalog> {
return childPriceLists;
}
+ @Override
public List<PriceList> getAllPriceLists() {
final List<PriceList> result = new ArrayList<PriceList>(childPriceLists.length + 1);
result.add(getDefaultPricelist());
@@ -139,4 +141,9 @@ public class DefaultPriceListSet extends ValidatingConfig<StandaloneCatalog> {
result = 31 * result + (childPriceLists != null ? Arrays.hashCode(childPriceLists) : 0);
return result;
}
+
+ @Override
+ public Plan getPlanListFrom(final String s, final Product product, final BillingPeriod billingPeriod) {
+ return null;
+ }
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/VersionedCatalog.java b/catalog/src/main/java/org/killbill/billing/catalog/VersionedCatalog.java
index 3841905..b0aa352 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/VersionedCatalog.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/VersionedCatalog.java
@@ -52,6 +52,7 @@ import org.killbill.billing.catalog.api.PlanPhasePriceOverridesWithCallContext;
import org.killbill.billing.catalog.api.PlanPhaseSpecifier;
import org.killbill.billing.catalog.api.PlanSpecifier;
import org.killbill.billing.catalog.api.PriceList;
+import org.killbill.billing.catalog.api.PriceListSet;
import org.killbill.billing.catalog.api.Product;
import org.killbill.billing.catalog.api.StaticCatalog;
import org.killbill.billing.catalog.api.Unit;
@@ -253,7 +254,8 @@ public class VersionedCatalog extends ValidatingConfig<StandaloneCatalogWithPric
return versionForDate(requestedDate).getCurrentPlans();
}
- public DefaultPriceListSet getPriceLists(final DateTime requestedDate) throws CatalogApiException {
+ @Override
+ public PriceListSet getPriceLists(final DateTime requestedDate) throws CatalogApiException {
return versionForDate(requestedDate).getStandaloneCatalog().getPriceLists();
}
@@ -400,7 +402,8 @@ public class VersionedCatalog extends ValidatingConfig<StandaloneCatalogWithPric
return versionForDate(clock.getUTCNow()).getEffectiveDate();
}
- public Date getEffectiveDate(final DateTime requestedDate) throws CatalogApiException {
+ @Override
+ public Date getStandaloneCatalogEffectiveDate(final DateTime requestedDate) throws CatalogApiException {
return versionForDate(requestedDate).getEffectiveDate();
}
diff --git a/catalog/src/test/java/org/killbill/billing/catalog/MockCatalog.java b/catalog/src/test/java/org/killbill/billing/catalog/MockCatalog.java
index 381749e..f4a20e3 100644
--- a/catalog/src/test/java/org/killbill/billing/catalog/MockCatalog.java
+++ b/catalog/src/test/java/org/killbill/billing/catalog/MockCatalog.java
@@ -35,6 +35,7 @@ import org.killbill.billing.catalog.api.PlanPhasePriceOverridesWithCallContext;
import org.killbill.billing.catalog.api.PlanPhaseSpecifier;
import org.killbill.billing.catalog.api.PlanSpecifier;
import org.killbill.billing.catalog.api.PriceList;
+import org.killbill.billing.catalog.api.PriceListSet;
import org.killbill.billing.catalog.api.Product;
import org.killbill.billing.catalog.rules.DefaultCaseCancelPolicy;
import org.killbill.billing.catalog.rules.DefaultCaseChangePlanAlignment;
@@ -88,6 +89,11 @@ public class MockCatalog extends StandaloneCatalog implements Catalog {
}
@Override
+ public Date getStandaloneCatalogEffectiveDate(final DateTime dateTime) throws CatalogApiException {
+ return getEffectiveDate();
+ }
+
+ @Override
public Currency[] getSupportedCurrencies(final DateTime requestedDate) throws CatalogApiException {
return getCurrentSupportedCurrencies();
}
@@ -103,6 +109,11 @@ public class MockCatalog extends StandaloneCatalog implements Catalog {
}
@Override
+ public PriceListSet getPriceLists(final DateTime dateTime) throws CatalogApiException {
+ return getPriceLists();
+ }
+
+ @Override
public Plan findPlan(final String name, final DateTime requestedDate) throws CatalogApiException {
return findCurrentPlan(name);
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CatalogJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CatalogJson.java
index 44eef61..541860c 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CatalogJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/CatalogJson.java
@@ -30,6 +30,7 @@ import org.joda.time.DateTime;
import org.killbill.billing.catalog.DefaultPriceListSet;
import org.killbill.billing.catalog.VersionedCatalog;
import org.killbill.billing.catalog.api.BillingPeriod;
+import org.killbill.billing.catalog.api.Catalog;
import org.killbill.billing.catalog.api.CatalogApiException;
import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.catalog.api.CurrencyValueNull;
@@ -37,6 +38,7 @@ import org.killbill.billing.catalog.api.Plan;
import org.killbill.billing.catalog.api.PlanPhase;
import org.killbill.billing.catalog.api.Price;
import org.killbill.billing.catalog.api.PriceList;
+import org.killbill.billing.catalog.api.PriceListSet;
import org.killbill.billing.catalog.api.Product;
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -67,9 +69,9 @@ public class CatalogJson {
}
- public CatalogJson(final VersionedCatalog catalog, final DateTime requestedDate) throws CatalogApiException {
+ public CatalogJson(final Catalog catalog, final DateTime requestedDate) throws CatalogApiException {
name = catalog.getCatalogName();
- effectiveDate = catalog.getEffectiveDate(requestedDate);
+ effectiveDate = catalog.getStandaloneCatalogEffectiveDate(requestedDate);
currencies = Arrays.asList(catalog.getSupportedCurrencies(requestedDate));
priceLists = new ArrayList<PriceListJson>();
@@ -107,7 +109,7 @@ public class CatalogJson {
products = ImmutableList.<ProductJson>copyOf(productMap.values());
- final DefaultPriceListSet priceLists = catalog.getPriceLists(requestedDate);
+ final PriceListSet priceLists = catalog.getPriceLists(requestedDate);
for (PriceList childPriceList : priceLists.getAllPriceLists()) {
this.priceLists.add(new PriceListJson(childPriceList));
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
index 31e33a1..35db125 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
@@ -137,7 +137,7 @@ public class CatalogResource extends JaxRsResourceBase {
final TenantContext tenantContext = context.createContext(request);
final Catalog catalog = catalogUserApi.getCatalog(catalogName, tenantContext);
- final CatalogJson json = new CatalogJson((VersionedCatalog) catalog, catalogDateVersion);
+ final CatalogJson json = new CatalogJson(catalog, catalogDateVersion);
return Response.status(Status.OK).entity(json).build();
}