killbill-memoizeit

Details

diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBase.java b/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBase.java
index 5251d1b..3db0cd5 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBase.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/user/DefaultSubscriptionBase.java
@@ -45,7 +45,6 @@ import org.killbill.billing.entity.EntityBase;
 import org.killbill.billing.subscription.api.SubscriptionBase;
 import org.killbill.billing.subscription.api.SubscriptionBaseApiService;
 import org.killbill.billing.subscription.api.SubscriptionBaseTransitionType;
-import org.killbill.billing.subscription.api.user.SubscriptionBaseTransitionDataIterator.Kind;
 import org.killbill.billing.subscription.api.user.SubscriptionBaseTransitionDataIterator.Order;
 import org.killbill.billing.subscription.api.user.SubscriptionBaseTransitionDataIterator.TimeLimit;
 import org.killbill.billing.subscription.api.user.SubscriptionBaseTransitionDataIterator.Visibility;
@@ -209,7 +208,7 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
         }
 
         final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(
-                clock, transitions, Order.ASC_FROM_PAST, Kind.SUBSCRIPTION,
+                clock, transitions, Order.ASC_FROM_PAST,
                 Visibility.ALL, TimeLimit.FUTURE_ONLY);
         while (it.hasNext()) {
             final SubscriptionBaseTransition cur = it.next();
@@ -265,7 +264,7 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
             return null;
         }
         final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(
-                clock, transitions, Order.ASC_FROM_PAST, Kind.SUBSCRIPTION,
+                clock, transitions, Order.ASC_FROM_PAST,
                 Visibility.ALL, TimeLimit.FUTURE_ONLY);
         return it.hasNext() ? it.next() : null;
     }
@@ -342,7 +341,7 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
             return null;
         }
         final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(
-                clock, transitions, Order.DESC_FROM_FUTURE, Kind.SUBSCRIPTION,
+                clock, transitions, Order.DESC_FROM_FUTURE,
                 Visibility.FROM_DISK_ONLY, TimeLimit.PAST_OR_PRESENT_ONLY);
         return it.hasNext() ? it.next() : null;
     }
@@ -356,7 +355,7 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
     public Integer getBillCycleDayLocal() {
 
         final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(
-                clock, transitions, Order.DESC_FROM_FUTURE, Kind.SUBSCRIPTION,
+                clock, transitions, Order.DESC_FROM_FUTURE,
                 Visibility.FROM_DISK_ONLY, TimeLimit.PAST_OR_PRESENT_ONLY);
         while (it.hasNext()) {
             final SubscriptionBaseTransition cur = it.next();
@@ -387,7 +386,7 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
             return Collections.emptyList();
         }
         final List<SubscriptionBaseTransition> result = new ArrayList<SubscriptionBaseTransition>();
-        final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(clock, transitions, Order.ASC_FROM_PAST, Kind.ALL, Visibility.ALL, TimeLimit.ALL);
+        final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(clock, transitions, Order.ASC_FROM_PAST, Visibility.ALL, TimeLimit.ALL);
         while (it.hasNext()) {
             result.add(it.next());
         }
@@ -464,7 +463,7 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
 
     public long getLastEventOrderedId() {
         final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(
-                clock, transitions, Order.DESC_FROM_FUTURE, Kind.SUBSCRIPTION,
+                clock, transitions, Order.DESC_FROM_FUTURE,
                 Visibility.FROM_DISK_ONLY, TimeLimit.ALL);
         return it.hasNext() ? ((SubscriptionBaseTransitionData) it.next()).getTotalOrdering() : -1L;
     }
@@ -476,7 +475,7 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
         }
         final List<SubscriptionBaseTransition> result = new ArrayList<SubscriptionBaseTransition>();
         final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(
-                clock, transitions, Order.ASC_FROM_PAST, Kind.BILLING,
+                clock, transitions, Order.ASC_FROM_PAST,
                 Visibility.ALL, TimeLimit.ALL);
         // Remove anything prior to first CREATE
         boolean foundInitialEvent = false;
@@ -502,7 +501,6 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
         final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(clock,
                                                                                                      transitions,
                                                                                                      Order.DESC_FROM_FUTURE,
-                                                                                                     Kind.SUBSCRIPTION,
                                                                                                      Visibility.ALL,
                                                                                                      TimeLimit.PAST_OR_PRESENT_ONLY);
 
@@ -552,7 +550,7 @@ public class DefaultSubscriptionBase extends EntityBase implements SubscriptionB
                     "No transitions for subscription %s", getId()));
         }
         final SubscriptionBaseTransitionDataIterator it = new SubscriptionBaseTransitionDataIterator(
-                clock, transitions, Order.DESC_FROM_FUTURE, Kind.SUBSCRIPTION,
+                clock, transitions, Order.DESC_FROM_FUTURE,
                 Visibility.ALL, TimeLimit.PAST_OR_PRESENT_ONLY);
         while (it.hasNext()) {
             final SubscriptionBaseTransitionData cur = (SubscriptionBaseTransitionData) it.next();
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/api/user/SubscriptionBaseTransitionDataIterator.java b/subscription/src/main/java/org/killbill/billing/subscription/api/user/SubscriptionBaseTransitionDataIterator.java
index b6402d3..4871f6a 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/api/user/SubscriptionBaseTransitionDataIterator.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/api/user/SubscriptionBaseTransitionDataIterator.java
@@ -27,9 +27,9 @@ public class SubscriptionBaseTransitionDataIterator implements Iterator<Subscrip
 
     private final Clock clock;
     private final Iterator<SubscriptionBaseTransition> it;
-    private final Kind kind;
     private final TimeLimit timeLimit;
     private final Visibility visibility;
+    private final Order order;
 
     private SubscriptionBaseTransition next;
 
@@ -38,12 +38,6 @@ public class SubscriptionBaseTransitionDataIterator implements Iterator<Subscrip
         DESC_FROM_FUTURE
     }
 
-    public enum Kind {
-        SUBSCRIPTION,
-        BILLING,
-        ALL
-    }
-
     public enum TimeLimit {
         FUTURE_ONLY,
         PAST_OR_PRESENT_ONLY,
@@ -56,12 +50,12 @@ public class SubscriptionBaseTransitionDataIterator implements Iterator<Subscrip
     }
 
     public SubscriptionBaseTransitionDataIterator(final Clock clock, final LinkedList<SubscriptionBaseTransition> transitions,
-                                                  final Order order, final Kind kind, final Visibility visibility, final TimeLimit timeLimit) {
+                                                  final Order order, final Visibility visibility, final TimeLimit timeLimit) {
         this.it = (order == Order.DESC_FROM_FUTURE) ? transitions.descendingIterator() : transitions.iterator();
         this.clock = clock;
-        this.kind = kind;
         this.timeLimit = timeLimit;
         this.visibility = visibility;
+        this.order = order;
         this.next = null;
     }