killbill-memoizeit

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/InvoiceDryRunJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/InvoiceDryRunJson.java
index 42493da..7b21259 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/InvoiceDryRunJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/InvoiceDryRunJson.java
@@ -23,6 +23,12 @@ import java.util.UUID;
 import javax.annotation.Nullable;
 
 import org.joda.time.LocalDate;
+import org.killbill.billing.catalog.api.BillingActionPolicy;
+import org.killbill.billing.catalog.api.BillingPeriod;
+import org.killbill.billing.catalog.api.PhaseType;
+import org.killbill.billing.catalog.api.ProductCategory;
+import org.killbill.billing.entitlement.api.SubscriptionEventType;
+import org.killbill.billing.invoice.api.DryRunType;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -31,31 +37,31 @@ import io.swagger.annotations.ApiModel;
 @ApiModel(value="InvoiceDryRun")
 public class InvoiceDryRunJson {
 
-    private final String dryRunType;
-    private final String dryRunAction;
-    private final String phaseType;
+    private final DryRunType dryRunType;
+    private final SubscriptionEventType dryRunAction;
+    private final PhaseType phaseType;
     private final String productName;
-    private final String productCategory;
-    private final String billingPeriod;
+    private final ProductCategory productCategory;
+    private final BillingPeriod billingPeriod;
     private final String priceListName;
     private final LocalDate effectiveDate;
     private final UUID subscriptionId;
     private final UUID bundleId;
-    private final String billingPolicy;
+    private final BillingActionPolicy billingPolicy;
     private final List<PhasePriceOverrideJson> priceOverrides;
 
     @JsonCreator
-    public InvoiceDryRunJson(@JsonProperty("dryRunType") @Nullable final String dryRunType,
-                             @JsonProperty("dryRunAction") @Nullable final String dryRunAction,
-                             @JsonProperty("phaseType") @Nullable final String phaseType,
+    public InvoiceDryRunJson(@JsonProperty("dryRunType") @Nullable final DryRunType dryRunType,
+                             @JsonProperty("dryRunAction") @Nullable final SubscriptionEventType dryRunAction,
+                             @JsonProperty("phaseType") @Nullable final PhaseType phaseType,
                              @JsonProperty("productName") @Nullable final String productName,
-                             @JsonProperty("productCategory") @Nullable final String productCategory,
-                             @JsonProperty("billingPeriod") @Nullable final String billingPeriod,
+                             @JsonProperty("productCategory") @Nullable final ProductCategory productCategory,
+                             @JsonProperty("billingPeriod") @Nullable final BillingPeriod billingPeriod,
                              @JsonProperty("priceListName") @Nullable final String priceListName,
                              @JsonProperty("subscriptionId") @Nullable final UUID subscriptionId,
                              @JsonProperty("bundleId") @Nullable final UUID bundleId,
                              @JsonProperty("effectiveDate") @Nullable final LocalDate effectiveDate,
-                             @JsonProperty("billingPolicy") @Nullable final String billingPolicy,
+                             @JsonProperty("billingPolicy") @Nullable final BillingActionPolicy billingPolicy,
                              @JsonProperty("priceOverrides") @Nullable final List<PhasePriceOverrideJson> priceOverrides) {
         this.dryRunType = dryRunType;
         this.dryRunAction = dryRunAction;
@@ -71,15 +77,15 @@ public class InvoiceDryRunJson {
         this.priceOverrides = priceOverrides;
     }
 
-    public String getDryRunType() {
+    public DryRunType getDryRunType() {
         return dryRunType;
     }
 
-    public String getDryRunAction() {
+    public SubscriptionEventType getDryRunAction() {
         return dryRunAction;
     }
 
-    public String getPhaseType() {
+    public PhaseType getPhaseType() {
         return phaseType;
     }
 
@@ -87,11 +93,11 @@ public class InvoiceDryRunJson {
         return productName;
     }
 
-    public String getProductCategory() {
+    public ProductCategory getProductCategory() {
         return productCategory;
     }
 
-    public String getBillingPeriod() {
+    public BillingPeriod getBillingPeriod() {
         return billingPeriod;
     }
 
@@ -111,7 +117,7 @@ public class InvoiceDryRunJson {
         return bundleId;
     }
 
-    public String getBillingPolicy() {
+    public BillingActionPolicy getBillingPolicy() {
         return billingPolicy;
     }
 
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
index 197e91e..3dbdbf3 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
@@ -1052,19 +1052,19 @@ public class InvoiceResource extends JaxRsResourceBase {
                 this.billingPolicy = null;
                 this.overrides = null;
             } else {
-                this.dryRunType = input.getDryRunType() != null ? DryRunType.valueOf(input.getDryRunType()) : DryRunType.TARGET_DATE;
-                this.action = input.getDryRunAction() != null ? SubscriptionEventType.valueOf(input.getDryRunAction()) : null;
+                this.dryRunType = input.getDryRunType() != null ? input.getDryRunType() : DryRunType.TARGET_DATE;
+                this.action = input.getDryRunAction() != null ? input.getDryRunAction() : null;
                 this.subscriptionId = input.getSubscriptionId();
                 this.bundleId = input.getBundleId();
                 this.effectiveDate = input.getEffectiveDate();
-                this.billingPolicy = input.getBillingPolicy() != null ? BillingActionPolicy.valueOf(input.getBillingPolicy()) : null;
+                this.billingPolicy = input.getBillingPolicy() != null ? input.getBillingPolicy() : null;
                 final PlanPhaseSpecifier planPhaseSpecifier = (input.getProductName() != null &&
                                                                input.getProductCategory() != null &&
                                                                input.getBillingPeriod() != null) ?
                                                               new PlanPhaseSpecifier(input.getProductName(),
-                                                                                     BillingPeriod.valueOf(input.getBillingPeriod()),
+                                                                                     input.getBillingPeriod(),
                                                                                      input.getPriceListName(),
-                                                                                     input.getPhaseType() != null ? PhaseType.valueOf(input.getPhaseType()) : null) :
+                                                                                     input.getPhaseType() != null ? input.getPhaseType() : null) :
                                                               null;
                 this.specifier = planPhaseSpecifier;
                 this.overrides = input.getPriceOverrides() != null ?