diff --git a/api/src/main/java/com/ning/billing/catalog/api/Duration.java b/api/src/main/java/com/ning/billing/catalog/api/Duration.java
index 9025367..90ea5c2 100644
--- a/api/src/main/java/com/ning/billing/catalog/api/Duration.java
+++ b/api/src/main/java/com/ning/billing/catalog/api/Duration.java
@@ -17,6 +17,7 @@
package com.ning.billing.catalog.api;
import org.joda.time.DateTime;
+import org.joda.time.Period;
public interface Duration {
@@ -25,4 +26,6 @@ public interface Duration {
public abstract int getNumber();
public DateTime addToDateTime(DateTime dateTime);
+
+ public Period toJodaPeriod();
}
\ No newline at end of file
diff --git a/catalog/src/main/java/com/ning/billing/catalog/DefaultDuration.java b/catalog/src/main/java/com/ning/billing/catalog/DefaultDuration.java
index 0e821ef..71bfe50 100644
--- a/catalog/src/main/java/com/ning/billing/catalog/DefaultDuration.java
+++ b/catalog/src/main/java/com/ning/billing/catalog/DefaultDuration.java
@@ -21,6 +21,7 @@ import com.ning.billing.catalog.api.TimeUnit;
import com.ning.billing.util.config.ValidatingConfig;
import com.ning.billing.util.config.ValidationErrors;
import org.joda.time.DateTime;
+import org.joda.time.Period;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@@ -52,7 +53,7 @@ public class DefaultDuration extends ValidatingConfig<StandaloneCatalog> impleme
@Override
public DateTime addToDateTime(DateTime dateTime) {
- if (number == null) {return dateTime;}
+ if ((number == null) && (unit != TimeUnit.UNLIMITED)) {return dateTime;}
switch (unit) {
case DAYS:
@@ -84,5 +85,21 @@ public class DefaultDuration extends ValidatingConfig<StandaloneCatalog> impleme
return this;
}
-
+ @Override
+ public Period toJodaPeriod() {
+ if ((number == null) && (unit != TimeUnit.UNLIMITED)) {return new Period();}
+
+ switch (unit) {
+ case DAYS:
+ return new Period().withDays(number);
+ case MONTHS:
+ return new Period().withMonths(number);
+ case YEARS:
+ return new Period().withYears(number);
+ case UNLIMITED:
+ return new Period().withYears(100);
+ default:
+ return new Period();
+ }
+ }
}