killbill-memoizeit

entitlement: get rid of getBlockingHistory in BlockingStateDao This

10/29/2013 6:29:05 PM

Details

diff --git a/api/src/main/java/com/ning/billing/junction/BlockingInternalApi.java b/api/src/main/java/com/ning/billing/junction/BlockingInternalApi.java
index 7019e6a..bce4909 100644
--- a/api/src/main/java/com/ning/billing/junction/BlockingInternalApi.java
+++ b/api/src/main/java/com/ning/billing/junction/BlockingInternalApi.java
@@ -19,10 +19,10 @@ package com.ning.billing.junction;
 import java.util.List;
 import java.util.UUID;
 
-import com.ning.billing.entitlement.api.Blockable;
-import com.ning.billing.entitlement.api.BlockingState;
 import com.ning.billing.callcontext.InternalCallContext;
 import com.ning.billing.callcontext.InternalTenantContext;
+import com.ning.billing.entitlement.api.Blockable;
+import com.ning.billing.entitlement.api.BlockingState;
 
 public interface BlockingInternalApi {
 
@@ -34,10 +34,6 @@ public interface BlockingInternalApi {
 
     public List<BlockingState> getBlockingHistoryForService(UUID blockableId, String serviceName, InternalTenantContext context);
 
-    public List<BlockingState> getBlockingHistory(Blockable blockable, InternalTenantContext context);
-
-    public List<BlockingState> getBlockingHistory(UUID blockableId, InternalTenantContext context);
-
     public List<BlockingState> getBlockingAll(Blockable blockable, InternalTenantContext context);
 
     public List<BlockingState> getBlockingAll(UUID blockableId, InternalTenantContext context);
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/api/svcs/DefaultInternalBlockingApi.java b/entitlement/src/main/java/com/ning/billing/entitlement/api/svcs/DefaultInternalBlockingApi.java
index 1e5d183..6cc1cd7 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/api/svcs/DefaultInternalBlockingApi.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/api/svcs/DefaultInternalBlockingApi.java
@@ -19,8 +19,6 @@ package com.ning.billing.entitlement.api.svcs;
 import java.util.List;
 import java.util.UUID;
 
-import javax.annotation.Nullable;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -87,16 +85,6 @@ public class DefaultInternalBlockingApi implements BlockingInternalApi {
     }
 
     @Override
-    public List<BlockingState> getBlockingHistory(final Blockable overdueable, final InternalTenantContext context) {
-        return dao.getBlockingHistory(overdueable.getId(), context);
-    }
-
-    @Override
-    public List<BlockingState> getBlockingHistory(final UUID overdueableId, final InternalTenantContext context) {
-        return dao.getBlockingHistory(overdueableId, context);
-    }
-
-    @Override
     public List<BlockingState> getBlockingAll(final Blockable overdueable, final InternalTenantContext context) {
         return dao.getBlockingAll(overdueable.getId(), context);
     }
@@ -129,7 +117,7 @@ public class DefaultInternalBlockingApi implements BlockingInternalApi {
     }
 
     private void postBlockingTransitionEvent(final UUID blockableId, final BlockingStateType type,
-            final BlockingAggregator previousState, final BlockingAggregator currentState, final InternalCallContext context) {
+                                             final BlockingAggregator previousState, final BlockingAggregator currentState, final InternalCallContext context) {
 
         try {
             final boolean isTransitionToBlockedBilling = !previousState.isBlockBilling() && currentState.isBlockBilling();
@@ -139,10 +127,10 @@ public class DefaultInternalBlockingApi implements BlockingInternalApi {
             final boolean isTransitionToUnblockedEntitlement = previousState.isBlockEntitlement() && !currentState.isBlockEntitlement();
 
             final BlockingTransitionInternalEvent event = new DefaultBlockingTransitionInternalEvent(blockableId, type,
-                                                                                               isTransitionToBlockedBilling, isTransitionToUnblockedBilling,
-                                                                                               isTransitionToBlockedEntitlement, isTransitionToUnblockedEntitlement,
+                                                                                                     isTransitionToBlockedBilling, isTransitionToUnblockedBilling,
+                                                                                                     isTransitionToBlockedEntitlement, isTransitionToUnblockedEntitlement,
 
-                                                                                               context.getAccountRecordId(), context.getTenantRecordId(), context.getUserToken());
+                                                                                                     context.getAccountRecordId(), context.getTenantRecordId(), context.getUserToken());
 
             // TODO
             // STEPH Ideally we would like to post from transaction when we inserted the new blocking state, but new state would have to be recalculated from transaction which is
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/dao/BlockingStateDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/dao/BlockingStateDao.java
index 3a54f68..473d600 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/dao/BlockingStateDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/dao/BlockingStateDao.java
@@ -19,10 +19,10 @@ package com.ning.billing.entitlement.dao;
 import java.util.List;
 import java.util.UUID;
 
-import com.ning.billing.entitlement.api.BlockingState;
 import com.ning.billing.callcontext.InternalCallContext;
 import com.ning.billing.callcontext.InternalTenantContext;
 import com.ning.billing.clock.Clock;
+import com.ning.billing.entitlement.api.BlockingState;
 
 public interface BlockingStateDao {
 
@@ -56,15 +56,6 @@ public interface BlockingStateDao {
     public List<BlockingState> getBlockingHistoryForService(UUID blockableId, String serviceName, InternalTenantContext context);
 
     /**
-     * Returns the state history across all the services
-     *
-     * @param blockableId
-     * @param context
-     * @return
-     */
-    public List<BlockingState> getBlockingHistory(UUID blockableId, InternalTenantContext context);
-
-    /**
      * Return all the events (past and future) across all services
      *
      * @param blockableId
@@ -76,6 +67,7 @@ public interface BlockingStateDao {
 
     /**
      * Return all events (past and future) across all services) for a given callcontext (account_record_id)
+     *
      * @param context
      * @return
      */
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/dao/BlockingStateSqlDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/dao/BlockingStateSqlDao.java
index fbb82e2..4c56a70 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/dao/BlockingStateSqlDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/dao/BlockingStateSqlDao.java
@@ -31,16 +31,16 @@ import org.skife.jdbi.v2.sqlobject.SqlUpdate;
 import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
 import org.skife.jdbi.v2.tweak.ResultSetMapper;
 
+import com.ning.billing.callcontext.InternalCallContext;
+import com.ning.billing.callcontext.InternalTenantContext;
 import com.ning.billing.entitlement.api.BlockingState;
 import com.ning.billing.entitlement.api.BlockingStateType;
+import com.ning.billing.junction.DefaultBlockingState;
 import com.ning.billing.util.audit.ChangeType;
-import com.ning.billing.callcontext.InternalCallContext;
-import com.ning.billing.callcontext.InternalTenantContext;
 import com.ning.billing.util.dao.MapperBase;
 import com.ning.billing.util.entity.dao.Audited;
 import com.ning.billing.util.entity.dao.EntitySqlDao;
 import com.ning.billing.util.entity.dao.EntitySqlDaoStringTemplate;
-import com.ning.billing.junction.DefaultBlockingState;
 
 @EntitySqlDaoStringTemplate
 @RegisterMapper(BlockingStateSqlDao.BlockingHistorySqlMapper.class)
@@ -64,15 +64,9 @@ public interface BlockingStateSqlDao extends EntitySqlDao<BlockingStateModelDao,
                                                                              @Bind("effectiveDate") Date effectiveDate,
                                                                              @BindBean final InternalTenantContext context);
 
-
-    @SqlQuery
-    public abstract List<BlockingStateModelDao> getBlockingHistory(@Bind("blockableId") UUID blockableId,
-                                                                   @Bind("effectiveDate") Date effectiveDate,
-                                                                   @BindBean final InternalTenantContext context);
-
     @SqlQuery
     public abstract List<BlockingStateModelDao> getBlockingAll(@Bind("blockableId") UUID blockableId,
-                                                                   @BindBean final InternalTenantContext context);
+                                                               @BindBean final InternalTenantContext context);
 
 
     @SqlUpdate
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/dao/DefaultBlockingStateDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/dao/DefaultBlockingStateDao.java
index c86331b..44cb187 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/dao/DefaultBlockingStateDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/dao/DefaultBlockingStateDao.java
@@ -99,22 +99,6 @@ public class DefaultBlockingStateDao implements BlockingStateDao {
     }
 
     @Override
-    public List<BlockingState> getBlockingHistory(final UUID blockableId, final InternalTenantContext context) {
-        return transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<List<BlockingState>>() {
-            @Override
-            public List<BlockingState> inTransaction(final EntitySqlDaoWrapperFactory<EntitySqlDao> entitySqlDaoWrapperFactory) throws Exception {
-                final List<BlockingStateModelDao> models = entitySqlDaoWrapperFactory.become(BlockingStateSqlDao.class).getBlockingHistory(blockableId, clock.getUTCNow().toDate(), context);
-                return new ArrayList<BlockingState>(Collections2.transform(models, new Function<BlockingStateModelDao, BlockingState>() {
-                    @Override
-                    public BlockingState apply(@Nullable final BlockingStateModelDao src) {
-                        return BlockingStateModelDao.toBlockingState(src);
-                    }
-                }));
-            }
-        });
-    }
-
-    @Override
     public List<BlockingState> getBlockingAll(final UUID blockableId, final InternalTenantContext context) {
         return transactionalSqlDao.execute(new EntitySqlDaoTransactionWrapper<List<BlockingState>>() {
             @Override
diff --git a/entitlement/src/main/resources/com/ning/billing/entitlement/dao/BlockingStateSqlDao.sql.stg b/entitlement/src/main/resources/com/ning/billing/entitlement/dao/BlockingStateSqlDao.sql.stg
index 8cc83d5..d470eb9 100644
--- a/entitlement/src/main/resources/com/ning/billing/entitlement/dao/BlockingStateSqlDao.sql.stg
+++ b/entitlement/src/main/resources/com/ning/billing/entitlement/dao/BlockingStateSqlDao.sql.stg
@@ -82,18 +82,6 @@ order by record_id asc
 ;
 >>
 
-getBlockingHistory() ::= <<
-select
-<allTableFields()>
-from
-<tableName()>
-where blockable_id = :blockableId
-and is_active
-<AND_CHECK_TENANT()>
-order by record_id asc
-;
->>
-
 getBlockingAll() ::= <<
 select
 <allTableFields()>
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/dao/MockBlockingStateDao.java b/entitlement/src/test/java/com/ning/billing/entitlement/dao/MockBlockingStateDao.java
index 43895ee..5dae30d 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/dao/MockBlockingStateDao.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/dao/MockBlockingStateDao.java
@@ -41,7 +41,7 @@ public class MockBlockingStateDao implements BlockingStateDao {
 
     @Override
     public BlockingState getBlockingStateForService(final UUID blockableId, final String serviceName, final InternalTenantContext context) {
-        final List<BlockingState> states = getBlockingHistory(blockableId, context);
+        final List<BlockingState> states = getBlockingAll(blockableId, context);
         if (states == null) {
             return null;
         }
@@ -89,13 +89,6 @@ public class MockBlockingStateDao implements BlockingStateDao {
     }
 
     @Override
-    public List<BlockingState> getBlockingHistory(final UUID overdueableId, final InternalTenantContext context) {
-        final List<BlockingState> states = blockingStates.get(overdueableId);
-        // Note! The returned list cannot be immutable!
-        return states == null ? new ArrayList<BlockingState>() : states;
-    }
-
-    @Override
     public List<BlockingState> getBlockingAll(final UUID blockableId, final InternalTenantContext context) {
         final List<BlockingState> states = blockingStates.get(blockableId);
         // Note! The returned list cannot be immutable!
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/dao/TestBlockingDao.java b/entitlement/src/test/java/com/ning/billing/entitlement/dao/TestBlockingDao.java
index 4092a0a..c9d3e53 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/dao/TestBlockingDao.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/dao/TestBlockingDao.java
@@ -91,7 +91,7 @@ public class TestBlockingDao extends EntitlementTestSuiteWithEmbeddedDB {
         final SubscriptionBaseBundle bundle = Mockito.mock(SubscriptionBaseBundle.class);
         Mockito.when(bundle.getId()).thenReturn(uuid);
 
-        final List<BlockingState> history2 = blockingStateDao.getBlockingHistory(bundle.getId(), internalCallContext);
+        final List<BlockingState> history2 = blockingStateDao.getBlockingAll(bundle.getId(), internalCallContext);
         Assert.assertEquals(history2.size(), 2);
         Assert.assertEquals(history2.get(0).getStateName(), overdueStateName);
         Assert.assertEquals(history2.get(1).getStateName(), overdueStateName2);
diff --git a/overdue/src/test/java/com/ning/billing/overdue/glue/ApplicatorMockJunctionModule.java b/overdue/src/test/java/com/ning/billing/overdue/glue/ApplicatorMockJunctionModule.java
index 4dbaa2c..d239661 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/glue/ApplicatorMockJunctionModule.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/glue/ApplicatorMockJunctionModule.java
@@ -133,16 +133,6 @@ public class ApplicatorMockJunctionModule extends AbstractModule {
         }
 
         @Override
-        public List<BlockingState> getBlockingHistory(final Blockable blockable, final InternalTenantContext context) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public List<BlockingState> getBlockingHistory(final UUID blockableId, final InternalTenantContext context) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
         public List<BlockingState> getBlockingAll(final Blockable blockable, final InternalTenantContext context) {
             throw new UnsupportedOperationException();
         }