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 9d3f148..5df4f88 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/DefaultUnit.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/DefaultUnit.java
@@ -29,11 +29,14 @@ import org.killbill.xmlloader.ValidationErrors;
@XmlAccessorType(XmlAccessType.NONE)
public class DefaultUnit extends ValidatingConfig<StandaloneCatalog> implements Unit {
-
+
@XmlAttribute(required = true)
@XmlID
private String name;
+ @XmlAttribute(required = false)
+ private String prettyName;
+
/* (non-Javadoc)
* @see org.killbill.billing.catalog.Unit#getName()
*/
@@ -44,7 +47,7 @@ public class DefaultUnit extends ValidatingConfig<StandaloneCatalog> implements
@Override
public String getPrettyName() {
- return name;
+ return prettyName;
}
@Override
@@ -57,14 +60,22 @@ public class DefaultUnit extends ValidatingConfig<StandaloneCatalog> implements
public void initialize(final StandaloneCatalog catalog, final URI sourceURI) {
super.initialize(catalog, sourceURI);
CatalogSafetyInitializer.initializeNonRequiredNullFieldsWithDefaultValue(this);
+ if (prettyName == null) {
+ this.prettyName = name;
+ }
}
-
public DefaultUnit setName(final String name) {
this.name = name;
return this;
}
+ public DefaultUnit setPrettyName(final String prettyName) {
+ this.prettyName = prettyName;
+ return this;
+
+ }
+
@Override
public boolean equals(final Object o) {
if (this == o) {
diff --git a/catalog/src/main/java/org/killbill/billing/catalog/plugin/StandaloneCatalogMapper.java b/catalog/src/main/java/org/killbill/billing/catalog/plugin/StandaloneCatalogMapper.java
index 7e5dc48..4d715cf 100644
--- a/catalog/src/main/java/org/killbill/billing/catalog/plugin/StandaloneCatalogMapper.java
+++ b/catalog/src/main/java/org/killbill/billing/catalog/plugin/StandaloneCatalogMapper.java
@@ -358,6 +358,7 @@ public class StandaloneCatalogMapper {
private DefaultUnit toDefaultUnit(final Unit input) {
final DefaultUnit result = new DefaultUnit();
result.setName(input.getName());
+ result.setPrettyName(input.getPrettyName());
return result;
}
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 1fb466f..af04da4 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
@@ -174,6 +174,7 @@ public class CatalogJson {
if (tieredBlocks != null && tieredBlocks.length > 0) {
for (int i=0; i < tieredBlocks.length; i++) {
tieredBlocksJson.add(new TieredBlockJson(tieredBlocks[i].getUnit().getName(),
+ tieredBlocks[i].getUnit().getPrettyName(),
tieredBlocks[i].getSize().toString(),
tieredBlocks[i].getMax().toString(),
buildPrices(tieredBlocks[i].getPrice())));
@@ -460,24 +461,30 @@ public class CatalogJson {
}
public static class TieredBlockJson {
- private final String unit;
+ private final String name;
+ private final String prettyName;
private final String size;
private final String max;
private final List<PriceJson> prices;
@JsonCreator
- public TieredBlockJson(@JsonProperty("unit") final String unit,
+ public TieredBlockJson(@JsonProperty("name") final String name,
+ @JsonProperty("prettyName") final String prettyName,
@JsonProperty("size") final String size,
@JsonProperty("max") final String max,
@JsonProperty("prices") final List<PriceJson> prices) {
- this.unit = unit;
+ this.name = name;
+ this.prettyName = prettyName;
this.size = size;
this.max = max;
this.prices = prices;
}
- public String getUnit() {
- return unit;
+ public String getName() {
+ return name;
+ }
+ public String getPrettyName() {
+ return prettyName;
}
public String getSize() {
return size;
@@ -492,7 +499,8 @@ public class CatalogJson {
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("TieredBlockJson{");
- sb.append("unit='").append(unit).append('\'');
+ sb.append("name='").append(name).append('\'');
+ sb.append("prettyName='").append(prettyName).append('\'');
sb.append(", size=").append(size);
sb.append(", max=").append(max);
sb.append(", prices=").append(prices);
@@ -511,7 +519,10 @@ public class CatalogJson {
final TieredBlockJson blockJson = (TieredBlockJson) o;
- if (unit != null ? !unit.equals(blockJson.unit) : blockJson.unit != null) {
+ if (name != null ? !name.equals(blockJson.name) : blockJson.name != null) {
+ return false;
+ }
+ if (prettyName != null ? !prettyName.equals(blockJson.prettyName) : blockJson.prettyName != null) {
return false;
}
if (size != null ? !size.equals(blockJson.size) : blockJson.size != null) {
@@ -529,7 +540,8 @@ public class CatalogJson {
@Override
public int hashCode() {
- int result = unit != null ? unit.hashCode() : 0;
+ int result = name != null ? name.hashCode() : 0;
+ result = 31 * result + (prettyName != null ? prettyName.hashCode() : 0);
result = 31 * result + (size != null ? size.hashCode() : 0);
result = 31 * result + (max != null ? max.hashCode() : 0);
result = 31 * result + (prices != null ? prices.hashCode() : 0);