killbill-uncached
Changes
Details
diff --git a/api/src/main/java/com/ning/billing/catalog/api/PlanPhaseSpecifier.java b/api/src/main/java/com/ning/billing/catalog/api/PlanPhaseSpecifier.java
index 4dcfa58..7dadda0 100644
--- a/api/src/main/java/com/ning/billing/catalog/api/PlanPhaseSpecifier.java
+++ b/api/src/main/java/com/ning/billing/catalog/api/PlanPhaseSpecifier.java
@@ -16,14 +16,34 @@
package com.ning.billing.catalog.api;
-public class PlanPhaseSpecifier extends PlanSpecifier {
+public class PlanPhaseSpecifier {
private final PhaseType phaseType;
+ private final String productName;
+ private final ProductCategory productCategory;
+ private final BillingPeriod billingPeriod;
+ private final String priceListName;
public PlanPhaseSpecifier(String productName, ProductCategory productCategory, BillingPeriod billingPeriod,
String priceListName, PhaseType phaseType) {
- super(productName, productCategory, billingPeriod, priceListName);
this.phaseType = phaseType;
+ this.productName = productName;
+ this.productCategory = productCategory;
+ this.billingPeriod = billingPeriod;
+ this.priceListName = priceListName;
+ }
+
+ public String getProductName() {
+ return productName;
+ }
+ public ProductCategory getProductCategory() {
+ return productCategory;
+ }
+ public BillingPeriod getBillingPeriod() {
+ return billingPeriod;
+ }
+ public String getPriceListName() {
+ return priceListName;
}
public PhaseType getPhaseType() {
diff --git a/api/src/main/java/com/ning/billing/catalog/api/PlanSpecifier.java b/api/src/main/java/com/ning/billing/catalog/api/PlanSpecifier.java
index 92b6bc4..39bba68 100644
--- a/api/src/main/java/com/ning/billing/catalog/api/PlanSpecifier.java
+++ b/api/src/main/java/com/ning/billing/catalog/api/PlanSpecifier.java
@@ -31,6 +31,14 @@ public class PlanSpecifier {
this.priceListName = priceListName;
}
+ public PlanSpecifier(PlanPhaseSpecifier planPhase) {
+ super();
+ this.productName = planPhase.getProductName();
+ this.productCategory = planPhase.getProductCategory();
+ this.billingPeriod = planPhase.getBillingPeriod();
+ this.priceListName = planPhase.getPriceListName();
+ }
+
public String getProductName() {
return productName;
}
diff --git a/catalog/src/main/java/com/ning/billing/catalog/CasePhase.java b/catalog/src/main/java/com/ning/billing/catalog/CasePhase.java
index e189c5c..36cafc3 100644
--- a/catalog/src/main/java/com/ning/billing/catalog/CasePhase.java
+++ b/catalog/src/main/java/com/ning/billing/catalog/CasePhase.java
@@ -18,10 +18,10 @@ package com.ning.billing.catalog;
import javax.xml.bind.annotation.XmlElement;
-import com.ning.billing.catalog.ValidatingConfig.ValidationErrors;
import com.ning.billing.catalog.api.BillingPeriod;
import com.ning.billing.catalog.api.PhaseType;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
+import com.ning.billing.catalog.api.PlanSpecifier;
import com.ning.billing.catalog.api.ProductCategory;
public abstract class CasePhase<T> extends Case<T> {
@@ -39,17 +39,17 @@ public abstract class CasePhase<T> extends Case<T> {
}
- public T getResult(PlanPhaseSpecifier planPhase, Catalog c) {
+ public T getResult(PlanPhaseSpecifier specifier, Catalog c) {
if (
- (phaseType == null || planPhase.getPhaseType() == null || planPhase.getPhaseType() == phaseType) &&
- satisfiesCase(planPhase, c)
+ (phaseType == null || specifier.getPhaseType() == null || specifier.getPhaseType() == phaseType) &&
+ satisfiesCase(new PlanSpecifier(specifier), c)
) {
return getResult();
}
return null;
}
- public static <K> K getResult(Case<K>[] cases, PlanPhaseSpecifier planSpec, Catalog catalog) {
+ public static <K> K getResult(CasePhase<K>[] cases, PlanPhaseSpecifier planSpec, Catalog catalog) {
if(cases != null) {
for(int i = cases.length - 1; i >=0; i --) {
K result = cases[i].getResult(planSpec, catalog);
diff --git a/catalog/src/main/java/com/ning/billing/catalog/Catalog.java b/catalog/src/main/java/com/ning/billing/catalog/Catalog.java
index c83da21..c66b411 100644
--- a/catalog/src/main/java/com/ning/billing/catalog/Catalog.java
+++ b/catalog/src/main/java/com/ning/billing/catalog/Catalog.java
@@ -208,9 +208,7 @@ public class Catalog extends ValidatingConfig implements ICatalog {
}
@Override
- public PlanAlignmentCreate getPlanCreateAlignment(PlanSpecifier planPhase) {
- PlanPhaseSpecifier specifier = new PlanPhaseSpecifier(planPhase.getProductName(), planPhase.getProductCategory(), planPhase.getBillingPeriod(), planPhase.getPriceListName(), null);
-
+ public PlanAlignmentCreate getPlanCreateAlignment(PlanSpecifier specifier) {
return planRules.getPlanCreateAlignment(specifier, this);
}
diff --git a/catalog/src/main/java/com/ning/billing/catalog/PlanRules.java b/catalog/src/main/java/com/ning/billing/catalog/PlanRules.java
index 34b372f..fa36049 100644
--- a/catalog/src/main/java/com/ning/billing/catalog/PlanRules.java
+++ b/catalog/src/main/java/com/ning/billing/catalog/PlanRules.java
@@ -117,16 +117,16 @@ public class PlanRules extends ValidatingConfig {
return CaseChange.getResult(changeAlignmentCase, from, to, catalog);
}
- public PlanAlignmentCreate getPlanCreateAlignment(PlanPhaseSpecifier planPhase, Catalog catalog) {
- return Case.getResult(createAlignmentCase, planPhase, catalog);
+ public PlanAlignmentCreate getPlanCreateAlignment(PlanSpecifier specifier, Catalog catalog) {
+ return Case.getResult(createAlignmentCase, specifier, catalog);
}
public ActionPolicy getPlanCancelPolicy(PlanPhaseSpecifier planPhase, Catalog catalog) {
- return Case.getResult(cancelCase, planPhase, catalog);
+ return CasePhase.getResult(cancelCase, planPhase, catalog);
}
public BillingAlignment getBillingAlignment(PlanPhaseSpecifier planPhase, Catalog catalog) {
- return Case.getResult(billingAlignmentCase, planPhase, catalog);
+ return CasePhase.getResult(billingAlignmentCase, planPhase, catalog);
}
private int getBillingPeriodIndex(BillingPeriod src) {
diff --git a/catalog/src/test/java/com/ning/billing/catalog/TestPlanChangeRules.java b/catalog/src/test/java/com/ning/billing/catalog/TestPlanChangeRules.java
index 2ea4319..dc51664 100644
--- a/catalog/src/test/java/com/ning/billing/catalog/TestPlanChangeRules.java
+++ b/catalog/src/test/java/com/ning/billing/catalog/TestPlanChangeRules.java
@@ -31,6 +31,7 @@ import com.ning.billing.catalog.PlanPolicyChangeRule.Qualifier;
import com.ning.billing.catalog.api.ActionPolicy;
import com.ning.billing.catalog.api.PhaseType;
import com.ning.billing.catalog.api.PlanPhaseSpecifier;
+import com.ning.billing.catalog.api.PlanSpecifier;
public class TestPlanChangeRules extends TestPlanRules {
@@ -50,7 +51,7 @@ public class TestPlanChangeRules extends TestPlanRules {
);
assertEquals(ActionPolicy.END_OF_TERM,c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, ANNUAL, null, EVERGREEN),
- new PlanPhaseSpecifier("BP", null, ANNUAL, null, EVERGREEN)
+ new PlanSpecifier("BP", null, ANNUAL, null)
));
}
@@ -71,12 +72,12 @@ public class TestPlanChangeRules extends TestPlanRules {
assertEquals(END_OF_TERM,c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, ANNUAL, null, EVERGREEN),
- new PlanPhaseSpecifier("BP", null, MONTHLY, null, EVERGREEN)
+ new PlanSpecifier("BP", null, MONTHLY, null)
));
assertNull(c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, MONTHLY, null, EVERGREEN),
- new PlanPhaseSpecifier("BP", null, ANNUAL, null, EVERGREEN)
+ new PlanSpecifier("BP", null, ANNUAL, null)
));
@@ -100,12 +101,12 @@ public class TestPlanChangeRules extends TestPlanRules {
assertEquals(END_OF_TERM,c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, MONTHLY, null, EVERGREEN),
- new PlanPhaseSpecifier("BP", null, ANNUAL, null, EVERGREEN)
+ new PlanSpecifier("BP", null, ANNUAL, null)
));
assertNull(c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, ANNUAL, null, EVERGREEN),
- new PlanPhaseSpecifier("BP", null, MONTHLY, null, EVERGREEN)
+ new PlanSpecifier("BP", null, MONTHLY, null)
));
}
@@ -127,12 +128,12 @@ public class TestPlanChangeRules extends TestPlanRules {
assertEquals(END_OF_TERM,c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, MONTHLY, null, EVERGREEN),
- new PlanPhaseSpecifier("BP", null, ANNUAL, null, EVERGREEN)
+ new PlanSpecifier("BP", null, ANNUAL, null)
));
assertNull(c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, MONTHLY, null, TRIAL),
- new PlanPhaseSpecifier("BP", null, ANNUAL, null, TRIAL)
+ new PlanSpecifier("BP", null, ANNUAL, null)
));
}
@@ -154,12 +155,12 @@ public class TestPlanChangeRules extends TestPlanRules {
assertEquals(IMMEDIATE,c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, MONTHLY, null, EVERGREEN),
- new PlanPhaseSpecifier("BP", null, ANNUAL, null, EVERGREEN)
+ new PlanSpecifier("BP", null, ANNUAL, null)
));
assertNull(c.getPlanChangePolicy(
new PlanPhaseSpecifier("BP", null, MONTHLY, null, EVERGREEN),
- new PlanPhaseSpecifier("FP", null, ANNUAL, null, EVERGREEN)
+ new PlanSpecifier("FP", null, ANNUAL, null)
));
@@ -182,12 +183,12 @@ public class TestPlanChangeRules extends TestPlanRules {
assertEquals(IMMEDIATE,c.getPlanChangePolicy(
new PlanPhaseSpecifier("BP", null, ANNUAL, null, EVERGREEN),
- new PlanPhaseSpecifier("FP", null, MONTHLY, null, EVERGREEN)
+ new PlanSpecifier("FP", null, MONTHLY, null)
));
assertNull(c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, MONTHLY, null, TRIAL),
- new PlanPhaseSpecifier("BP", null, ANNUAL, null, TRIAL)
+ new PlanSpecifier("BP", null, ANNUAL, null)
));
}
@@ -212,12 +213,12 @@ public class TestPlanChangeRules extends TestPlanRules {
assertEquals(END_OF_TERM,c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, ANNUAL, null, EVERGREEN),
- new PlanPhaseSpecifier("BP", null, MONTHLY, null, EVERGREEN)
+ new PlanSpecifier("BP", null, MONTHLY, null)
));
assertNull(c.getPlanChangePolicy(
new PlanPhaseSpecifier("BP", null, MONTHLY, null, EVERGREEN),
- new PlanPhaseSpecifier("FP", null, ANNUAL, null, EVERGREEN)
+ new PlanSpecifier("FP", null, ANNUAL, null)
));
}
@@ -240,12 +241,12 @@ public class TestPlanChangeRules extends TestPlanRules {
assertEquals(IMMEDIATE,c.getPlanChangePolicy(
new PlanPhaseSpecifier("FP", null, ANNUAL, null, EVERGREEN),
- new PlanPhaseSpecifier("BP", null, MONTHLY, null, EVERGREEN)
+ new PlanSpecifier("BP", null, MONTHLY, null)
));
assertNull(c.getPlanChangePolicy(
new PlanPhaseSpecifier("BP", null, MONTHLY, null, EVERGREEN),
- new PlanPhaseSpecifier("FP", null, ANNUAL, null, EVERGREEN)
+ new PlanSpecifier("FP", null, ANNUAL, null)
));
}
diff --git a/catalog/src/test/resources/WeaponsHire.xml b/catalog/src/test/resources/WeaponsHire.xml
index 59b9093..a3f4e0b 100644
--- a/catalog/src/test/resources/WeaponsHire.xml
+++ b/catalog/src/test/resources/WeaponsHire.xml
@@ -83,12 +83,6 @@ Use Cases to do:
<product name="Refurbish-Maintenance">
<category>ADD_ON</category>
</product>
- <product name="Bowie-Knife">
- <category>BASE</category>
- </product>
- <product name="Samuri-Sword">
- <category>BASE</category>
- </product>
</products>
<rules>