killbill-aplcache

subscription: remove legacy paid_through_date field Reported-by:

12/16/2013 11:05:34 AM

Details

diff --git a/api/src/main/java/com/ning/billing/subscription/api/SubscriptionBase.java b/api/src/main/java/com/ning/billing/subscription/api/SubscriptionBase.java
index 09fabfc..7675239 100644
--- a/api/src/main/java/com/ning/billing/subscription/api/SubscriptionBase.java
+++ b/api/src/main/java/com/ning/billing/subscription/api/SubscriptionBase.java
@@ -25,7 +25,6 @@ import com.ning.billing.catalog.api.BillingActionPolicy;
 import com.ning.billing.catalog.api.BillingPeriod;
 import com.ning.billing.catalog.api.Plan;
 import com.ning.billing.catalog.api.PlanPhase;
-import com.ning.billing.catalog.api.PlanPhaseSpecifier;
 import com.ning.billing.catalog.api.PriceList;
 import com.ning.billing.catalog.api.Product;
 import com.ning.billing.catalog.api.ProductCategory;
@@ -34,13 +33,11 @@ import com.ning.billing.entitlement.api.Entitlement.EntitlementSourceType;
 import com.ning.billing.entitlement.api.Entitlement.EntitlementState;
 import com.ning.billing.subscription.api.user.SubscriptionBaseApiException;
 import com.ning.billing.subscription.api.user.SubscriptionBaseTransition;
-import com.ning.billing.entitlement.api.Entitlement.EntitlementState;
 import com.ning.billing.util.callcontext.CallContext;
 import com.ning.billing.util.entity.Entity;
 
 public interface SubscriptionBase extends Entity, Blockable {
 
-
     public boolean cancel(final CallContext context)
             throws SubscriptionBaseApiException;
 
@@ -98,8 +95,6 @@ public interface SubscriptionBase extends Entity, Blockable {
 
     public DateTime getChargedThroughDate();
 
-    public DateTime getPaidThroughDate();
-
     public ProductCategory getCategory();
 
     public SubscriptionBaseTransition getPendingTransition();
diff --git a/subscription/src/main/java/com/ning/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java b/subscription/src/main/java/com/ning/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
index bde3dfd..161268e 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/api/svcs/DefaultSubscriptionInternalApi.java
@@ -273,8 +273,7 @@ public class DefaultSubscriptionInternalApi extends SubscriptionApiBase implemen
                                       DateTime chargedThruDate, InternalCallContext context) {
         final DefaultSubscriptionBase subscription = (DefaultSubscriptionBase) dao.getSubscriptionFromId(subscriptionId, context);
         final SubscriptionBuilder builder = new SubscriptionBuilder(subscription)
-                .setChargedThroughDate(chargedThruDate)
-                .setPaidThroughDate(subscription.getPaidThroughDate());
+                .setChargedThroughDate(chargedThruDate);
 
         dao.updateChargedThroughDate(new DefaultSubscriptionBase(builder), context);
     }
diff --git a/subscription/src/main/java/com/ning/billing/subscription/api/user/DefaultSubscriptionBase.java b/subscription/src/main/java/com/ning/billing/subscription/api/user/DefaultSubscriptionBase.java
index 4faf2f2..bb191d5 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/api/user/DefaultSubscriptionBase.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/api/user/DefaultSubscriptionBase.java
@@ -78,7 +78,6 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
     //
     private final long activeVersion;
     private final DateTime chargedThroughDate;
-    private final DateTime paidThroughDate;
 
     //
     // User APIs (create, change, cancelWithRequestedDate,...) will recompute those each time,
@@ -110,7 +109,6 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
         this.category = builder.getCategory();
         this.activeVersion = builder.getActiveVersion();
         this.chargedThroughDate = builder.getChargedThroughDate();
-        this.paidThroughDate = builder.getPaidThroughDate();
     }
 
     // Used for API to make sure we have a clock and an apiService set before we return the object
@@ -124,7 +122,6 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
         this.category = internalSubscription.getCategory();
         this.activeVersion = internalSubscription.getActiveVersion();
         this.chargedThroughDate = internalSubscription.getChargedThroughDate();
-        this.paidThroughDate = internalSubscription.getPaidThroughDate();
         this.transitions = new LinkedList<SubscriptionBaseTransition>(internalSubscription.getAllTransitions());
         this.events = internalSubscription.getEvents();
     }
@@ -349,11 +346,6 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
     }
 
     @Override
-    public DateTime getPaidThroughDate() {
-        return paidThroughDate;
-    }
-
-    @Override
     public List<SubscriptionBaseTransition> getAllTransitions() {
         if (transitions == null) {
             return Collections.emptyList();
diff --git a/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionBuilder.java b/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionBuilder.java
index 94f23f7..2347887 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionBuilder.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/api/user/SubscriptionBuilder.java
@@ -25,6 +25,7 @@ import com.ning.billing.catalog.api.ProductCategory;
 import com.ning.billing.subscription.exceptions.SubscriptionBaseError;
 
 public class SubscriptionBuilder {
+
     private UUID id;
     private UUID bundleId;
     private DateTime createdDate;
@@ -34,7 +35,6 @@ public class SubscriptionBuilder {
     private Long activeVersion;
     private ProductCategory category;
     private DateTime chargedThroughDate;
-    private DateTime paidThroughDate;
 
     public SubscriptionBuilder() {
         this.activeVersion = SubscriptionEvents.INITIAL_VERSION;
@@ -48,7 +48,6 @@ public class SubscriptionBuilder {
         this.category = original.getCategory();
         this.activeVersion = original.getActiveVersion();
         this.chargedThroughDate = original.getChargedThroughDate();
-        this.paidThroughDate = original.getPaidThroughDate();
     }
 
     public SubscriptionBuilder setId(final UUID id) {
@@ -91,11 +90,6 @@ public class SubscriptionBuilder {
         return this;
     }
 
-    public SubscriptionBuilder setPaidThroughDate(final DateTime paidThroughDate) {
-        this.paidThroughDate = paidThroughDate;
-        return this;
-    }
-
     public SubscriptionBuilder setCategory(final ProductCategory category) {
         this.category = category;
         return this;
@@ -137,21 +131,17 @@ public class SubscriptionBuilder {
         return chargedThroughDate;
     }
 
-    public DateTime getPaidThroughDate() {
-        return paidThroughDate;
-    }
-
     private void checkAllFieldsSet() {
         for (final Field cur : SubscriptionBuilder.class.getDeclaredFields()) {
             try {
                 final Object value = cur.get(this);
                 if (value == null) {
                     throw new SubscriptionBaseError(String.format("Field %s has not been set for SubscriptionBase",
-                                                             cur.getName()));
+                                                                  cur.getName()));
                 }
             } catch (IllegalAccessException e) {
                 throw new SubscriptionBaseError(String.format("Failed to access value for field %s for SubscriptionBase",
-                                                         cur.getName()), e);
+                                                              cur.getName()), e);
             }
         }
     }
diff --git a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/model/SubscriptionModelDao.java b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/model/SubscriptionModelDao.java
index bd181c6..9defa26 100644
--- a/subscription/src/main/java/com/ning/billing/subscription/engine/dao/model/SubscriptionModelDao.java
+++ b/subscription/src/main/java/com/ning/billing/subscription/engine/dao/model/SubscriptionModelDao.java
@@ -36,12 +36,11 @@ public class SubscriptionModelDao extends EntityBase implements EntityModelDao<S
     private DateTime bundleStartDate;
     private long activeVersion;
     private DateTime chargedThroughDate;
-    private DateTime paidThroughDate;
 
     public SubscriptionModelDao() { /* For the DAO mapper */ }
 
     public SubscriptionModelDao(final UUID id, final UUID bundleId, final ProductCategory category, final DateTime startDate, final DateTime bundleStartDate,
-                                final long activeVersion, final DateTime chargedThroughDate, final DateTime paidThroughDate, final DateTime createdDate, final DateTime updateDate) {
+                                final long activeVersion, final DateTime chargedThroughDate, final DateTime createdDate, final DateTime updateDate) {
         super(id, createdDate, updateDate);
         this.bundleId = bundleId;
         this.category = category;
@@ -49,12 +48,11 @@ public class SubscriptionModelDao extends EntityBase implements EntityModelDao<S
         this.bundleStartDate = bundleStartDate;
         this.activeVersion = activeVersion;
         this.chargedThroughDate = chargedThroughDate;
-        this.paidThroughDate = paidThroughDate;
     }
 
     public SubscriptionModelDao(final DefaultSubscriptionBase src) {
         this(src.getId(), src.getBundleId(), src.getCategory(), src.getAlignStartDate(), src.getBundleStartDate(), src.getActiveVersion(),
-             src.getChargedThroughDate(), src.getPaidThroughDate(), src.getCreatedDate(), src.getUpdatedDate());
+             src.getChargedThroughDate(), src.getCreatedDate(), src.getUpdatedDate());
     }
 
     public UUID getBundleId() {
@@ -81,10 +79,6 @@ public class SubscriptionModelDao extends EntityBase implements EntityModelDao<S
         return chargedThroughDate;
     }
 
-    public DateTime getPaidThroughDate() {
-        return paidThroughDate;
-    }
-
     public void setBundleId(final UUID bundleId) {
         this.bundleId = bundleId;
     }
@@ -109,10 +103,6 @@ public class SubscriptionModelDao extends EntityBase implements EntityModelDao<S
         this.chargedThroughDate = chargedThroughDate;
     }
 
-    public void setPaidThroughDate(final DateTime paidThroughDate) {
-        this.paidThroughDate = paidThroughDate;
-    }
-
     public static SubscriptionBase toSubscription(final SubscriptionModelDao src) {
         if (src == null) {
             return null;
@@ -127,7 +117,6 @@ public class SubscriptionModelDao extends EntityBase implements EntityModelDao<S
                                             .setAlignStartDate(src.getStartDate())
                                             .setActiveVersion(src.getActiveVersion())
                                             .setChargedThroughDate(src.getChargedThroughDate())
-                                            .setPaidThroughDate(src.getPaidThroughDate())
                                             .setCreatedDate(src.getCreatedDate())
                                             .setUpdatedDate(src.getUpdatedDate()));
     }
@@ -142,7 +131,6 @@ public class SubscriptionModelDao extends EntityBase implements EntityModelDao<S
         sb.append(", bundleStartDate=").append(bundleStartDate);
         sb.append(", activeVersion=").append(activeVersion);
         sb.append(", chargedThroughDate=").append(chargedThroughDate);
-        sb.append(", paidThroughDate=").append(paidThroughDate);
         sb.append('}');
         return sb.toString();
     }
@@ -176,9 +164,6 @@ public class SubscriptionModelDao extends EntityBase implements EntityModelDao<S
         if (chargedThroughDate != null ? !chargedThroughDate.equals(that.chargedThroughDate) : that.chargedThroughDate != null) {
             return false;
         }
-        if (paidThroughDate != null ? !paidThroughDate.equals(that.paidThroughDate) : that.paidThroughDate != null) {
-            return false;
-        }
         if (startDate != null ? !startDate.equals(that.startDate) : that.startDate != null) {
             return false;
         }
@@ -195,7 +180,6 @@ public class SubscriptionModelDao extends EntityBase implements EntityModelDao<S
         result = 31 * result + (bundleStartDate != null ? bundleStartDate.hashCode() : 0);
         result = 31 * result + (int) (activeVersion ^ (activeVersion >>> 32));
         result = 31 * result + (chargedThroughDate != null ? chargedThroughDate.hashCode() : 0);
-        result = 31 * result + (paidThroughDate != null ? paidThroughDate.hashCode() : 0);
         return result;
     }
 
diff --git a/subscription/src/main/resources/com/ning/billing/subscription/engine/dao/SubscriptionSqlDao.sql.stg b/subscription/src/main/resources/com/ning/billing/subscription/engine/dao/SubscriptionSqlDao.sql.stg
index ad122a2..55b2cdb 100644
--- a/subscription/src/main/resources/com/ning/billing/subscription/engine/dao/SubscriptionSqlDao.sql.stg
+++ b/subscription/src/main/resources/com/ning/billing/subscription/engine/dao/SubscriptionSqlDao.sql.stg
@@ -9,7 +9,6 @@ tableFields(prefix) ::= <<
 , <prefix>bundle_start_date
 , <prefix>active_version
 , <prefix>charged_through_date
-, <prefix>paid_through_date
 , <prefix>created_by
 , <prefix>created_date
 , <prefix>updated_by
@@ -23,7 +22,6 @@ tableValues() ::= <<
 , :bundleStartDate
 , :activeVersion
 , :chargedThroughDate
-, :paidThroughDate
 , :createdBy
 , :createdDate
 , :updatedBy
diff --git a/util/src/test/java/com/ning/billing/mock/MockSubscription.java b/util/src/test/java/com/ning/billing/mock/MockSubscription.java
index a663791..f32ce7a 100644
--- a/util/src/test/java/com/ning/billing/mock/MockSubscription.java
+++ b/util/src/test/java/com/ning/billing/mock/MockSubscription.java
@@ -166,11 +166,6 @@ public class MockSubscription implements SubscriptionBase {
     }
 
     @Override
-    public DateTime getPaidThroughDate() {
-        return sub.getPaidThroughDate();
-    }
-
-    @Override
     public ProductCategory getCategory() {
         return sub.getCategory();
     }