Details
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlan.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlan.java
index 0d1757f..c326ace 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlan.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlan.java
@@ -57,6 +57,9 @@ public class DefaultPlan extends ValidatingConfig<StandaloneCatalog> implements
@XmlID
private String name;
+ @XmlAttribute(required = false)
+ private String prettyName;
+
@XmlElement(required = false)
private Date effectiveDateForExistingSubscriptions;
@@ -123,6 +126,11 @@ public class DefaultPlan extends ValidatingConfig<StandaloneCatalog> implements
}
@Override
+ public String getPrettyName() {
+ return prettyName;
+ }
+
+ @Override
public DefaultPlanPhase getFinalPhase() {
return finalPhase;
}
@@ -177,6 +185,9 @@ public class DefaultPlan extends ValidatingConfig<StandaloneCatalog> implements
super.initialize(catalog, sourceURI);
CatalogSafetyInitializer.initializeNonRequiredNullFieldsWithDefaultValue(this);
+ if (prettyName == null) {
+ this.prettyName = name;
+ }
if (finalPhase != null) {
finalPhase.setPlan(this);
finalPhase.initialize(catalog, sourceURI);
@@ -235,6 +246,11 @@ public class DefaultPlan extends ValidatingConfig<StandaloneCatalog> implements
return this;
}
+ public DefaultPlan setPrettyName(final String prettyName) {
+ this.prettyName = prettyName;
+ return this;
+ }
+
public DefaultPlan setFinalPhase(final DefaultPlanPhase finalPhase) {
this.finalPhase = finalPhase;
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 b2bd6cb..b2508a5 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPlanPhase.java
@@ -49,6 +49,9 @@ import com.google.common.collect.Iterables;
@XmlAccessorType(XmlAccessType.NONE)
public class DefaultPlanPhase extends ValidatingConfig<StandaloneCatalog> implements PlanPhase {
+ @XmlAttribute(required = false)
+ private String prettyName;
+
@XmlAttribute(required = true)
private PhaseType type;
@@ -147,6 +150,11 @@ public class DefaultPlanPhase extends ValidatingConfig<StandaloneCatalog> implem
}
@Override
+ public String getPrettyName() {
+ return prettyName != null ? prettyName : getName();
+ }
+
+ @Override
public Duration getDuration() {
return duration;
}
@@ -196,6 +204,11 @@ public class DefaultPlanPhase extends ValidatingConfig<StandaloneCatalog> implem
duration.initialize(root, uri);
}
+ public DefaultPlanPhase setPrettyName(final String prettyName) {
+ this.prettyName = prettyName;
+ return this;
+ }
+
public DefaultPlanPhase setFixed(final DefaultFixed fixed) {
this.fixed = fixed;
return this;
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPriceList.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPriceList.java
index a67783a..7e686b2 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultPriceList.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultPriceList.java
@@ -43,6 +43,9 @@ public class DefaultPriceList extends ValidatingConfig<StandaloneCatalog> implem
@XmlID
private String name;
+ @XmlAttribute(required = false)
+ private String prettyName;
+
@XmlElementWrapper(name = "plans", required = true)
@XmlIDREF
@XmlElement(type=DefaultPlan.class, name = "plan", required = false)
@@ -74,6 +77,11 @@ public class DefaultPriceList extends ValidatingConfig<StandaloneCatalog> implem
return name;
}
+ @Override
+ public String getPrettyName() {
+ return prettyName;
+ }
+
/* (non-Javadoc)
* @see org.killbill.billing.catalog.IPriceList#findPlan(org.killbill.billing.catalog.api.IProduct, org.killbill.billing.catalog.api.BillingPeriod)
*/
@@ -103,6 +111,10 @@ public class DefaultPriceList extends ValidatingConfig<StandaloneCatalog> implem
public void initialize(final StandaloneCatalog catalog, final URI sourceURI) {
super.initialize(catalog, sourceURI);
CatalogSafetyInitializer.initializeNonRequiredNullFieldsWithDefaultValue(this);
+
+ if (prettyName == null) {
+ this.prettyName = name;
+ }
}
public DefaultPriceList setName(final String name) {
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultProduct.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultProduct.java
index af95ceb..1af8c29 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultProduct.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultProduct.java
@@ -42,6 +42,9 @@ public class DefaultProduct extends ValidatingConfig<StandaloneCatalog> implemen
@XmlID
private String name;
+ @XmlAttribute(required = false)
+ private String prettyName;
+
@XmlElement(required = true)
private ProductCategory category;
@@ -105,6 +108,11 @@ public class DefaultProduct extends ValidatingConfig<StandaloneCatalog> implemen
return name;
}
+ @Override
+ public String getPrettyName() {
+ return prettyName;
+ }
+
public boolean isIncluded(final DefaultProduct addon) {
for (final Product p : included.getEntries()) {
if (addon == p) {
@@ -156,6 +164,9 @@ public class DefaultProduct extends ValidatingConfig<StandaloneCatalog> implemen
for (DefaultLimit cur : limits) {
cur.initialize(catalog, sourceURI);
}
+ if (prettyName == null) {
+ this.prettyName = name;
+ }
catalogName = catalog.getCatalogName();
}
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/DefaultUnit.java b/catalog/src/main/java/org/killbill/billing/catalog/DefaultUnit.java
index f82499d..9d3f148 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultUnit.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultUnit.java
@@ -43,6 +43,11 @@ public class DefaultUnit extends ValidatingConfig<StandaloneCatalog> implements
}
@Override
+ public String getPrettyName() {
+ return name;
+ }
+
+ @Override
public ValidationErrors validate(StandaloneCatalog root, ValidationErrors errors) {
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 3786ce7..ce2a92a 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultUsage.java
@@ -59,6 +59,9 @@ public class DefaultUsage extends ValidatingConfig<StandaloneCatalog> implements
@XmlID
private String name;
+ @XmlAttribute(required = false)
+ private String prettyName;
+
@XmlAttribute(required = true)
private BillingMode billingMode;
@@ -150,6 +153,11 @@ public class DefaultUsage extends ValidatingConfig<StandaloneCatalog> implements
}
@Override
+ public String getPrettyName() {
+ return prettyName;
+ }
+
+ @Override
public BillingMode getBillingMode() {
return billingMode;
}
@@ -228,6 +236,10 @@ public class DefaultUsage extends ValidatingConfig<StandaloneCatalog> implements
super.initialize(root, uri);
CatalogSafetyInitializer.initializeNonRequiredNullFieldsWithDefaultValue(this);
+ if (prettyName == null) {
+ this.prettyName = name;
+ }
+
for (DefaultLimit limit : limits) {
limit.initialize(root, uri);
}
diff --git a/catalog/src/test/java/org/killbill/billing/catalog/TestCatalogUpdater.java b/catalog/src/test/java/org/killbill/billing/catalog/TestCatalogUpdater.java
index af11ffe..f0707ed 100644
--- a/catalog/src/test/java/org/killbill/billing/catalog/TestCatalogUpdater.java
+++ b/catalog/src/test/java/org/killbill/billing/catalog/TestCatalogUpdater.java
@@ -281,25 +281,25 @@ public class TestCatalogUpdater extends CatalogTestSuiteNoDB {
" </currencies>\n" +
" <units/>\n" +
" <products>\n" +
- " <product name=\"Dynamic\">\n" +
+ " <product name=\"Dynamic\" prettyName=\"Dynamic\">\n" +
" <category>BASE</category>\n" +
" <included/>\n" +
" <available/>\n" +
" <limits/>\n" +
" </product>\n" +
- " <product name=\"Sports\">\n" +
+ " <product name=\"Sports\" prettyName=\"Sports\">\n" +
" <category>BASE</category>\n" +
" <included/>\n" +
" <available/>\n" +
" <limits/>\n" +
" </product>\n" +
- " <product name=\"Standard\">\n" +
+ " <product name=\"Standard\" prettyName=\"Standard\">\n" +
" <category>BASE</category>\n" +
" <included/>\n" +
" <available/>\n" +
" <limits/>\n" +
" </product>\n" +
- " <product name=\"Super\">\n" +
+ " <product name=\"Super\" prettyName=\"Super\">\n" +
" <category>BASE</category>\n" +
" <included/>\n" +
" <available/>\n" +
@@ -339,7 +339,7 @@ public class TestCatalogUpdater extends CatalogTestSuiteNoDB {
" </priceList>\n" +
" </rules>\n" +
" <plans>\n" +
- " <plan name=\"dynamic-annual\">\n" +
+ " <plan name=\"dynamic-annual\" prettyName=\"dynamic-annual\">\n" +
" <product>Dynamic</product>\n" +
" <initialPhases>\n" +
" <phase type=\"TRIAL\">\n" +
@@ -376,7 +376,7 @@ public class TestCatalogUpdater extends CatalogTestSuiteNoDB {
" </finalPhase>\n" +
" <plansAllowedInBundle>-1</plansAllowedInBundle>\n" +
" </plan>\n" +
- " <plan name=\"sports-monthly\">\n" +
+ " <plan name=\"sports-monthly\" prettyName=\"sports-monthly\">\n" +
" <product>Sports</product>\n" +
" <initialPhases>\n" +
" <phase type=\"TRIAL\">\n" +
@@ -412,7 +412,7 @@ public class TestCatalogUpdater extends CatalogTestSuiteNoDB {
" </finalPhase>\n" +
" <plansAllowedInBundle>-1</plansAllowedInBundle>\n" +
" </plan>\n" +
- " <plan name=\"standard-monthly\">\n" +
+ " <plan name=\"standard-monthly\" prettyName=\"standard-monthly\">\n" +
" <product>Standard</product>\n" +
" <initialPhases>\n" +
" <phase type=\"TRIAL\">\n" +
@@ -448,7 +448,7 @@ public class TestCatalogUpdater extends CatalogTestSuiteNoDB {
" </finalPhase>\n" +
" <plansAllowedInBundle>-1</plansAllowedInBundle>\n" +
" </plan>\n" +
- " <plan name=\"super-monthly\">\n" +
+ " <plan name=\"super-monthly\" prettyName=\"super-monthly\">\n" +
" <product>Super</product>\n" +
" <initialPhases>\n" +
" <phase type=\"TRIAL\">\n" +
diff --git a/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemCatalogBase.java b/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemCatalogBase.java
new file mode 100644
index 0000000..4066e5f
--- /dev/null
+++ b/invoice/src/main/java/org/killbill/billing/invoice/model/InvoiceItemCatalogBase.java
@@ -0,0 +1,4 @@
+package org.killbill.billing.invoice.model;
+
+public class InvoiceItemCatalogBase {
+}
diff --git a/util/src/test/java/org/killbill/billing/mock/MockPlan.java b/util/src/test/java/org/killbill/billing/mock/MockPlan.java
index 09b4e88..dc78dea 100644
--- a/util/src/test/java/org/killbill/billing/mock/MockPlan.java
+++ b/util/src/test/java/org/killbill/billing/mock/MockPlan.java
@@ -63,6 +63,11 @@ public class MockPlan implements Plan {
}
@Override
+ public String getPrettyName() {
+ return name;
+ }
+
+ @Override
public Date getEffectiveDateForExistingSubscriptions() {
return new Date();
}
diff --git a/util/src/test/java/org/killbill/billing/mock/MockPriceList.java b/util/src/test/java/org/killbill/billing/mock/MockPriceList.java
index 9722cb2..0d2398c 100644
--- a/util/src/test/java/org/killbill/billing/mock/MockPriceList.java
+++ b/util/src/test/java/org/killbill/billing/mock/MockPriceList.java
@@ -45,6 +45,11 @@ public class MockPriceList implements PriceList {
}
@Override
+ public String getPrettyName() {
+ return name;
+ }
+
+ @Override
public Collection<Plan> findPlans(final Product product, final BillingPeriod period) {
return ImmutableList.of(plan);
}
diff --git a/util/src/test/java/org/killbill/billing/mock/MockProduct.java b/util/src/test/java/org/killbill/billing/mock/MockProduct.java
index 3e3ad3e..19eb407 100644
--- a/util/src/test/java/org/killbill/billing/mock/MockProduct.java
+++ b/util/src/test/java/org/killbill/billing/mock/MockProduct.java
@@ -64,6 +64,11 @@ public class MockProduct implements Product {
}
@Override
+ public String getPrettyName() {
+ return name;
+ }
+
+ @Override
public Collection<Product> getAvailable() {
return available;
}