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());
}
}