Details
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlock.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlock.java
index a0d1e07..9159e18 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlock.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultBlock.java
@@ -1,7 +1,8 @@
/*
- * Copyright 2014 The Billing Project, LLC
+ * Copyright 2014-2015 Groupon, Inc
+ * Copyright 2014-2015 The Billing Project, LLC
*
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
@@ -27,6 +28,7 @@ import org.killbill.billing.catalog.api.Block;
import org.killbill.billing.catalog.api.BlockType;
import org.killbill.billing.catalog.api.CatalogApiException;
import org.killbill.billing.catalog.api.InternationalPrice;
+import org.killbill.billing.catalog.api.PlanPhase;
import org.killbill.billing.catalog.api.Unit;
import org.killbill.xmlloader.ValidatingConfig;
import org.killbill.xmlloader.ValidationError;
@@ -52,7 +54,7 @@ public class DefaultBlock extends ValidatingConfig<StandaloneCatalog> implements
private Double minTopUpCredit;
// Not defined in catalog
- private DefaultUsage usage;
+ private PlanPhase phase;
@Override
public BlockType getType() {
@@ -77,7 +79,7 @@ public class DefaultBlock extends ValidatingConfig<StandaloneCatalog> implements
@Override
public Double getMinTopUpCredit() throws CatalogApiException {
if (minTopUpCredit != null && type != BlockType.TOP_UP) {
- throw new CatalogApiException(ErrorCode.CAT_NOT_TOP_UP_BLOCK, usage.getPhase().getName());
+ throw new CatalogApiException(ErrorCode.CAT_NOT_TOP_UP_BLOCK, phase.getName());
}
return minTopUpCredit;
}
@@ -86,7 +88,7 @@ public class DefaultBlock extends ValidatingConfig<StandaloneCatalog> implements
public ValidationErrors validate(final StandaloneCatalog catalog, final ValidationErrors errors) {
if (type == BlockType.TOP_UP && minTopUpCredit == null) {
errors.add(new ValidationError(String.format("TOP_UP block needs to define minTopUpCredit for phase %s",
- usage.getPhase().toString()), catalog.getCatalogURI(), DefaultUsage.class, ""));
+ phase.getName()), catalog.getCatalogURI(), DefaultUsage.class, ""));
}
return errors;
}
@@ -116,8 +118,8 @@ public class DefaultBlock extends ValidatingConfig<StandaloneCatalog> implements
return this;
}
- public DefaultBlock setUsage(final DefaultUsage usage) {
- this.usage = usage;
+ public DefaultBlock setPhase(final PlanPhase phase) {
+ this.phase = phase;
return this;
}
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultLimit.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultLimit.java
index 343202c..4fd6ff9 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultLimit.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultLimit.java
@@ -1,7 +1,9 @@
/*
* Copyright 2010-2011 Ning, Inc.
+ * Copyright 2014-2015 Groupon, Inc
+ * Copyright 2014-2015 The Billing Project, LLC
*
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
@@ -28,19 +30,17 @@ import org.killbill.xmlloader.ValidationErrors;
@XmlAccessorType(XmlAccessType.NONE)
public class DefaultLimit extends ValidatingConfig<StandaloneCatalog> implements Limit {
+
@XmlElement(required = true)
@XmlIDREF
private DefaultUnit unit;
@XmlElement(required = false)
private Double max;
-
+
@XmlElement(required = false)
private Double min;
- // Not defined in catalog
- private DefaultUsage usage;
-
/* (non-Javadoc)
* @see org.killbill.billing.catalog.Limit#getUnit()
*/
@@ -67,10 +67,10 @@ public class DefaultLimit extends ValidatingConfig<StandaloneCatalog> implements
@Override
public ValidationErrors validate(StandaloneCatalog root, ValidationErrors errors) {
- if(max == null && min == null) {
- errors.add(new ValidationError("max and min cannot both be ommitted",root.getCatalogURI(), Limit.class, ""));
+ if (max == null && min == null) {
+ errors.add(new ValidationError("max and min cannot both be ommitted", root.getCatalogURI(), Limit.class, ""));
} else if (max != null && min != null && max.doubleValue() < min.doubleValue()) {
- errors.add(new ValidationError("max must be greater than min",root.getCatalogURI(), Limit.class, ""));
+ errors.add(new ValidationError("max must be greater than min", root.getCatalogURI(), Limit.class, ""));
}
return errors;
@@ -105,9 +105,4 @@ public class DefaultLimit extends ValidatingConfig<StandaloneCatalog> implements
this.min = min;
return this;
}
-
- public DefaultLimit setUsage(final DefaultUsage usage) {
- this.usage = usage;
- return this;
- }
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java
index ff0507b..ec69d44 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java
@@ -163,7 +163,7 @@ public class DefaultPlanPhase extends ValidatingConfig<StandaloneCatalog> implem
return this;
}
- protected DefaultPlanPhase setUsages(final DefaultUsage [] usages) {
+ protected DefaultPlanPhase setUsages(final DefaultUsage[] usages) {
this.usages = usages;
return this;
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultTier.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultTier.java
index 2b4841b..a00ae85 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultTier.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultTier.java
@@ -1,7 +1,8 @@
/*
- * Copyright 2014 The Billing Project, LLC
+ * Copyright 2014-2015 Groupon, Inc
+ * Copyright 2014-2015 The Billing Project, LLC
*
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
@@ -22,10 +23,9 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import org.killbill.billing.catalog.api.BillingMode;
-import org.killbill.billing.catalog.api.Block;
import org.killbill.billing.catalog.api.InternationalPrice;
+import org.killbill.billing.catalog.api.PlanPhase;
import org.killbill.billing.catalog.api.Tier;
-import org.killbill.billing.catalog.api.TieredBlock;
import org.killbill.billing.catalog.api.UsageType;
import org.killbill.xmlloader.ValidatingConfig;
import org.killbill.xmlloader.ValidationError;
@@ -50,9 +50,10 @@ public class DefaultTier extends ValidatingConfig<StandaloneCatalog> implements
@XmlElement(required = false)
private DefaultInternationalPrice recurringPrice;
-
// Not defined in catalog
- private DefaultUsage usage;
+ private BillingMode billingMode;
+ private UsageType usageType;
+ private PlanPhase phase;
@Override
public DefaultLimit[] getLimits() {
@@ -84,8 +85,16 @@ public class DefaultTier extends ValidatingConfig<StandaloneCatalog> implements
return this;
}
- public DefaultTier setUsage(final DefaultUsage usage) {
- this.usage = usage;
+ public void setBillingMode(final BillingMode billingMode) {
+ this.billingMode = billingMode;
+ }
+
+ public void setUsageType(final UsageType usageType) {
+ this.usageType = usageType;
+ }
+
+ public DefaultTier setPhase(final PlanPhase phase) {
+ this.phase = phase;
return this;
}
@@ -101,14 +110,13 @@ public class DefaultTier extends ValidatingConfig<StandaloneCatalog> implements
@Override
public ValidationErrors validate(final StandaloneCatalog catalog, final ValidationErrors errors) {
-
- if (usage.getBillingMode() == BillingMode.IN_ARREAR && usage.getUsageType() == UsageType.CAPACITY && limits.length == 0) {
+ if (billingMode == BillingMode.IN_ARREAR && usageType == UsageType.CAPACITY && limits.length == 0) {
errors.add(new ValidationError(String.format("Usage [IN_ARREAR CAPACITY] section of phase %s needs to define some limits",
- usage.getPhase().toString()), catalog.getCatalogURI(), DefaultUsage.class, ""));
+ phase.getName()), catalog.getCatalogURI(), DefaultUsage.class, ""));
}
- if (usage.getBillingMode() == BillingMode.IN_ARREAR && usage.getUsageType() == UsageType.CONSUMABLE && blocks.length == 0) {
+ if (billingMode == BillingMode.IN_ARREAR && usageType == UsageType.CONSUMABLE && blocks.length == 0) {
errors.add(new ValidationError(String.format("Usage [IN_ARREAR CONSUMABLE] section of phase %s needs to define some blocks",
- usage.getPhase().toString()), catalog.getCatalogURI(), DefaultUsage.class, ""));
+ phase.getName()), catalog.getCatalogURI(), DefaultUsage.class, ""));
}
validateCollection(catalog, errors, limits);
return errors;
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java
index 0a15162..fefc3ef 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java
@@ -1,7 +1,8 @@
/*
- * Copyright 2014 The Billing Project, LLC
+ * Copyright 2014-2015 Groupon, Inc
+ * Copyright 2014-2015 The Billing Project, LLC
*
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
@@ -77,7 +78,6 @@ public class DefaultUsage extends ValidatingConfig<StandaloneCatalog> implements
@XmlElement(required = false)
private DefaultInternationalPrice recurringPrice;
-
// Not exposed in xml.
private PlanPhase phase;
@@ -159,23 +159,18 @@ public class DefaultUsage extends ValidatingConfig<StandaloneCatalog> implements
public void initialize(final StandaloneCatalog root, final URI uri) {
for (DefaultLimit limit : limits) {
limit.initialize(root, uri);
- limit.setUsage(this);
}
for (DefaultBlock block : blocks) {
block.initialize(root, uri);
- block.setUsage(this);
+ block.setPhase(phase);
}
for (DefaultTier tier : tiers) {
tier.initialize(root, uri);
- tier.setUsage(this);
+ tier.setPhase(phase);
}
}
- public PlanPhase getPhase() {
- return phase;
- }
-
public DefaultUsage setBillingPeriod(final BillingPeriod billingPeriod) {
this.billingPeriod = billingPeriod;
return this;
@@ -206,7 +201,6 @@ public class DefaultUsage extends ValidatingConfig<StandaloneCatalog> implements
return this;
}
-
public DefaultUsage setBlocks(final DefaultBlock[] blocks) {
this.blocks = blocks;
return this;