src/net/fortuna/ical4j/model/component/VEvent.java

changeset 3
73bdfa70b04e
parent 0
fb9019fb1bf7
child 4
45d57ecba757
     1.1 --- a/src/net/fortuna/ical4j/model/component/VEvent.java	Tue Feb 10 19:25:00 2015 +0100
     1.2 +++ b/src/net/fortuna/ical4j/model/component/VEvent.java	Tue Feb 10 19:38:00 2015 +0100
     1.3 @@ -548,7 +548,6 @@
     1.4              
     1.5              PropertyValidator.getInstance().assertOneOrLess(Property.CATEGORIES, getProperties());
     1.6              PropertyValidator.getInstance().assertOneOrLess(Property.CLASS, getProperties());
     1.7 -            PropertyValidator.getInstance().assertOneOrLess(Property.COMMENT, getProperties());
     1.8              PropertyValidator.getInstance().assertOneOrLess(Property.CREATED, getProperties());
     1.9              PropertyValidator.getInstance().assertOneOrLess(Property.DESCRIPTION, getProperties());
    1.10              PropertyValidator.getInstance().assertOneOrLess(Property.DTEND, getProperties());
    1.11 @@ -643,7 +642,6 @@
    1.12              PropertyValidator.getInstance().assertOne(Property.SEQUENCE, getProperties());
    1.13              PropertyValidator.getInstance().assertOne(Property.UID, getProperties());
    1.14              
    1.15 -            PropertyValidator.getInstance().assertOneOrLess(Property.COMMENT, getProperties());
    1.16              PropertyValidator.getInstance().assertOneOrLess(Property.CATEGORIES, getProperties());
    1.17              PropertyValidator.getInstance().assertOneOrLess(Property.CLASS, getProperties());
    1.18              PropertyValidator.getInstance().assertOneOrLess(Property.CREATED, getProperties());
    1.19 @@ -747,7 +745,6 @@
    1.20              
    1.21              PropertyValidator.getInstance().assertOneOrLess(Property.CATEGORIES, getProperties());
    1.22              PropertyValidator.getInstance().assertOneOrLess(Property.CLASS, getProperties());
    1.23 -            PropertyValidator.getInstance().assertOneOrLess(Property.COMMENT, getProperties());
    1.24              PropertyValidator.getInstance().assertOneOrLess(Property.CREATED, getProperties());
    1.25              PropertyValidator.getInstance().assertOneOrLess(Property.DESCRIPTION, getProperties());
    1.26              PropertyValidator.getInstance().assertOneOrLess(Property.DTEND, getProperties());
    1.27 @@ -833,7 +830,6 @@
    1.28              PropertyValidator.getInstance().assertOne(Property.ORGANIZER, getProperties());
    1.29              PropertyValidator.getInstance().assertOne(Property.UID, getProperties());
    1.30              
    1.31 -            PropertyValidator.getInstance().assertOneOrLess(Property.COMMENT, getProperties());
    1.32              PropertyValidator.getInstance().assertOneOrLess(Property.RECURRENCE_ID, getProperties());
    1.33              PropertyValidator.getInstance().assertOneOrLess(Property.SEQUENCE, getProperties());
    1.34              
    1.35 @@ -941,7 +937,6 @@
    1.36              PropertyValidator.getInstance().assertOneOrLess(Property.SEQUENCE, getProperties());
    1.37              PropertyValidator.getInstance().assertOneOrLess(Property.CATEGORIES, getProperties());
    1.38              PropertyValidator.getInstance().assertOneOrLess(Property.CLASS, getProperties());
    1.39 -            PropertyValidator.getInstance().assertOneOrLess(Property.COMMENT, getProperties());
    1.40              PropertyValidator.getInstance().assertOneOrLess(Property.CREATED, getProperties());
    1.41              PropertyValidator.getInstance().assertOneOrLess(Property.DESCRIPTION, getProperties());
    1.42              PropertyValidator.getInstance().assertOneOrLess(Property.DTEND, getProperties());
    1.43 @@ -1034,7 +1029,6 @@
    1.44              PropertyValidator.getInstance().assertOne(Property.ORGANIZER, getProperties());
    1.45              PropertyValidator.getInstance().assertOne(Property.UID, getProperties());
    1.46              
    1.47 -            PropertyValidator.getInstance().assertOneOrLess(Property.COMMENT, getProperties());
    1.48              PropertyValidator.getInstance().assertOneOrLess(Property.RECURRENCE_ID, getProperties());
    1.49              
    1.50              PropertyValidator.getInstance().assertNone(Property.ATTACH, getProperties());
    1.51 @@ -1140,7 +1134,6 @@
    1.52              PropertyValidator.getInstance().assertOneOrLess(Property.SEQUENCE, getProperties());
    1.53              PropertyValidator.getInstance().assertOneOrLess(Property.CATEGORIES, getProperties());
    1.54              PropertyValidator.getInstance().assertOneOrLess(Property.CLASS, getProperties());
    1.55 -            PropertyValidator.getInstance().assertOneOrLess(Property.COMMENT, getProperties());
    1.56              PropertyValidator.getInstance().assertOneOrLess(Property.CREATED, getProperties());
    1.57              PropertyValidator.getInstance().assertOneOrLess(Property.DESCRIPTION, getProperties());
    1.58              PropertyValidator.getInstance().assertOneOrLess(Property.DTEND, getProperties());
    1.59 @@ -1233,7 +1226,6 @@
    1.60              PropertyValidator.getInstance().assertOneOrLess(Property.SEQUENCE, getProperties());
    1.61              PropertyValidator.getInstance().assertOneOrLess(Property.CATEGORIES, getProperties());
    1.62              PropertyValidator.getInstance().assertOneOrLess(Property.CLASS, getProperties());
    1.63 -            PropertyValidator.getInstance().assertOneOrLess(Property.COMMENT, getProperties());
    1.64              PropertyValidator.getInstance().assertOneOrLess(Property.CREATED, getProperties());
    1.65              PropertyValidator.getInstance().assertOneOrLess(Property.DESCRIPTION, getProperties());
    1.66              PropertyValidator.getInstance().assertOneOrLess(Property.DTEND, getProperties());
    1.67 @@ -1456,9 +1448,19 @@
    1.68      public final DtEnd getEndDate(final boolean deriveFromDuration) {
    1.69          DtEnd dtEnd = (DtEnd) getProperty(Property.DTEND);
    1.70          // No DTEND? No problem, we'll use the DURATION.
    1.71 -        if (dtEnd == null && deriveFromDuration && getDuration() != null) {
    1.72 +        if (dtEnd == null && deriveFromDuration && getStartDate() != null) {
    1.73              final DtStart dtStart = getStartDate();
    1.74 -            final Duration vEventDuration = getDuration();
    1.75 +            final Duration vEventDuration;
    1.76 +            if (getDuration() != null) {
    1.77 +                vEventDuration = getDuration();
    1.78 +            } else if (dtStart.getDate() instanceof DateTime) {
    1.79 +                // If "DTSTART" is a DATE-TIME, then the event's duration is zero (see: RFC 5545, 3.6.1 Event Component)
    1.80 +                vEventDuration = new Duration(new Dur(0, 0, 0, 0));
    1.81 +            } else {
    1.82 +                // If "DTSTART" is a DATE, then the event's duration is one day (see: RFC 5545, 3.6.1 Event Component)
    1.83 +                vEventDuration = new Duration(new Dur(1, 0, 0, 0));
    1.84 +            }
    1.85 +
    1.86              dtEnd = new DtEnd(Dates.getInstance(vEventDuration.getDuration()
    1.87                      .getTime(dtStart.getDate()), (Value) dtStart
    1.88                      .getParameter(Parameter.VALUE)));

mercurial