Skip to content

Commit

Permalink
Support API backwards compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
benfortuna committed Nov 29, 2018
1 parent f3451ab commit aa08324
Show file tree
Hide file tree
Showing 11 changed files with 86 additions and 39 deletions.
12 changes: 12 additions & 0 deletions src/main/java/net/fortuna/ical4j/model/Period.java
Expand Up @@ -90,6 +90,18 @@ public Period(final DateTime start, final DateTime end) {
normalise();
}

/**
* Constructs a new period with the specified start date and duration.
*
* @param start
* the start date of the period
* @param duration
* the duration of the period
*/
public Period(final DateTime start, final Dur duration) {
this(start, TemporalAmountAdapter.from(duration));
}

/**
* Constructs a new period with the specified start date and duration.
*
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/net/fortuna/ical4j/model/TemporalAmountAdapter.java
Expand Up @@ -74,4 +74,14 @@ public static TemporalAmountAdapter fromDateRange(Date start, Date end) {
}
return new TemporalAmountAdapter(duration);
}

public static TemporalAmount from(Dur duration) {
if (duration.getWeeks() > 0) {
return Period.ofWeeks(duration.getWeeks());
}
return Duration.ofDays(duration.getDays())
.plusHours(duration.getHours())
.plusMinutes(duration.getMinutes())
.plusSeconds(duration.getSeconds());
}
}
8 changes: 8 additions & 0 deletions src/main/java/net/fortuna/ical4j/model/ZoneOffsetAdapter.java
Expand Up @@ -36,4 +36,12 @@ public String toString() {
}
return retVal;
}

/**
* @param utcOffset
* @return a zoneoffset representing the specified utcoffset
*/
public static ZoneOffset from(UtcOffset utcOffset) {
return ZoneOffset.of(utcOffset.toString());
}
}
10 changes: 0 additions & 10 deletions src/main/java/net/fortuna/ical4j/model/ZoneOffsetFactory.java

This file was deleted.

15 changes: 15 additions & 0 deletions src/main/java/net/fortuna/ical4j/model/property/Duration.java
Expand Up @@ -127,6 +127,13 @@ public Duration(final ParameterList aList, final String aValue) {
setValue(aValue);
}

/**
* @param duration a duration value
*/
public Duration(final Dur duration) {
this(TemporalAmountAdapter.from(duration));
}

/**
* @param duration a duration value
*/
Expand All @@ -135,6 +142,14 @@ public Duration(final TemporalAmount duration) {
this.duration = new TemporalAmountAdapter(duration);
}

/**
* @param aList a list of parameters for this component
* @param duration a duration value
*/
public Duration(final ParameterList aList, final Dur duration) {
this(aList, TemporalAmountAdapter.from(duration));
}

/**
* @param aList a list of parameters for this component
* @param duration a duration value
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/net/fortuna/ical4j/model/property/Trigger.java
Expand Up @@ -165,6 +165,13 @@ public Trigger(final ParameterList aList, final String aValue) {
setValue(aValue);
}

/**
* @param duration a duration in milliseconds
*/
public Trigger(final Dur duration) {
this(TemporalAmountAdapter.from(duration));
}

/**
* @param duration a duration in milliseconds
*/
Expand All @@ -173,6 +180,14 @@ public Trigger(final TemporalAmount duration) {
setDuration(duration);
}

/**
* @param aList a list of parameters for this component
* @param duration a duration in milliseconds
*/
public Trigger(final ParameterList aList, final Dur duration) {
this(aList, TemporalAmountAdapter.from(duration));
}

/**
* @param aList a list of parameters for this component
* @param duration a duration in milliseconds
Expand Down
Expand Up @@ -52,8 +52,6 @@ public class TzOffsetFrom extends Property {

private static final long serialVersionUID = 450274263165493502L;

private static final ZoneOffsetFactory ZONEOFFSET_FACTORY = new ZoneOffsetFactory();

private ZoneOffsetAdapter offset;

/**
Expand Down Expand Up @@ -84,7 +82,7 @@ public TzOffsetFrom(final ParameterList aList, final String aValue) {
* @param anOffset a timezone offset in milliseconds
*/
public TzOffsetFrom(final UtcOffset anOffset) {
this(ZONEOFFSET_FACTORY.create(anOffset));
this(ZoneOffsetAdapter.from(anOffset));
}

/**
Expand All @@ -100,7 +98,7 @@ public TzOffsetFrom(final ZoneOffset anOffset) {
* @param anOffset a timezone offset in milliseconds
*/
public TzOffsetFrom(final ParameterList aList, final UtcOffset anOffset) {
this(aList, ZONEOFFSET_FACTORY.create(anOffset));
this(aList, ZoneOffsetAdapter.from(anOffset));
}

/**
Expand Down
Expand Up @@ -52,8 +52,6 @@ public class TzOffsetTo extends Property {

private static final long serialVersionUID = 8213874575051177732L;

private static final ZoneOffsetFactory ZONEOFFSET_FACTORY = new ZoneOffsetFactory();

private ZoneOffsetAdapter offset;

/**
Expand Down Expand Up @@ -84,7 +82,7 @@ public TzOffsetTo(final ParameterList aList, final String aValue) {
* @param anOffset a timezone offset in milliseconds
*/
public TzOffsetTo(final UtcOffset anOffset) {
this(ZONEOFFSET_FACTORY.create(anOffset));
this(ZoneOffsetAdapter.from(anOffset));
}

/**
Expand All @@ -100,7 +98,7 @@ public TzOffsetTo(final ZoneOffset anOffset) {
* @param anOffset a timezone offset in milliseconds
*/
public TzOffsetTo(final ParameterList aList, final UtcOffset anOffset) {
this(aList, ZONEOFFSET_FACTORY.create(anOffset));
this(aList, ZoneOffsetAdapter.from(anOffset));
}

/**
Expand Down
Expand Up @@ -21,4 +21,14 @@ class TemporalAmountAdapterTest extends Specification {
java.time.Period.ofYears(1) | "P52W"
java.time.Period.ofMonths(6) | "P24W"
}

def 'verify temporalamount creation'() {
expect:
TemporalAmountAdapter.from(duration) == expectedTemporalAmount

where:
duration | expectedTemporalAmount
new Dur(1, 2, 3, 4) | Duration.ofDays(1).plusHours(2).plusMinutes(3).plusSeconds(4)
new Dur(5) | java.time.Period.ofWeeks(5)
}
}
Expand Up @@ -16,4 +16,16 @@ class ZoneOffsetAdapterTest extends Specification {
ZoneOffset.ofHoursMinutes(5, 30) | "+0530"
ZoneOffset.ofHoursMinutesSeconds(-6, -30, -15) | "-063015"
}

def 'verify zoneoffset creation'() {
expect:
ZoneOffsetAdapter.from(utcOffset) == expectedOffset

where:
utcOffset | expectedOffset
new UtcOffset('+1000') | ZoneOffset.ofHours(10)
new UtcOffset('-0600') | ZoneOffset.ofHours(-6)
new UtcOffset('+0545') | ZoneOffset.ofHoursMinutes(5, 45)
}

}

This file was deleted.

0 comments on commit aa08324

Please sign in to comment.