killbill-aplcache

subscription: simplify date computation in BaseAligner Signed-off-by:

4/14/2016 2:28:46 PM

Details

diff --git a/subscription/src/main/java/org/killbill/billing/subscription/alignment/BaseAligner.java b/subscription/src/main/java/org/killbill/billing/subscription/alignment/BaseAligner.java
index 57ce150..e0a1128 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/alignment/BaseAligner.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/alignment/BaseAligner.java
@@ -1,11 +1,13 @@
 /*
- * Copyright 2010-2013 Ning, Inc.
+ * Copyright 2010-2014 Ning, Inc.
+ * Copyright 2014-2016 Groupon, Inc
+ * Copyright 2014-2016 The Billing Project, LLC
  *
- * Ning licenses this file to you under the Apache License, version 2.0
+ * The Billing Project licenses this file to you under the Apache License, version 2.0
  * (the "License"); you may not use this file except in compliance with the
  * License.  You may obtain a copy of the License at:
  *
- *   http://www.apache.org/licenses/LICENSE-2.0
+ *    http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
@@ -17,7 +19,6 @@
 package org.killbill.billing.subscription.alignment;
 
 import org.joda.time.DateTime;
-
 import org.killbill.billing.catalog.api.Duration;
 
 public class BaseAligner {
@@ -30,25 +31,7 @@ public class BaseAligner {
         return addOrRemoveDuration(input, duration, false);
     }
 
-    private DateTime addOrRemoveDuration(final DateTime input, final Duration duration, boolean add) {
-        DateTime result = input;
-        switch (duration.getUnit()) {
-            case DAYS:
-                result = add ? result.plusDays(duration.getNumber()) : result.minusDays(duration.getNumber());
-                ;
-                break;
-
-            case MONTHS:
-                result = add ? result.plusMonths(duration.getNumber()) : result.minusMonths(duration.getNumber());
-                break;
-
-            case YEARS:
-                result = add ? result.plusYears(duration.getNumber()) : result.minusYears(duration.getNumber());
-                break;
-            case UNLIMITED:
-            default:
-                throw new RuntimeException("Trying to move to unlimited time period");
-        }
-        return result;
+    private DateTime addOrRemoveDuration(final DateTime input, final Duration duration, final boolean add) {
+        return add ? input.plus(duration.toJodaPeriod()) : input.minus(duration.toJodaPeriod());
     }
 }