[Bedework-commit] calendarapi r1462 -
releases/bedework-3.7/icalendar/src/org/bedework/icalendar
svnadmin at bedework.org
svnadmin at bedework.org
Tue Mar 8 09:56:47 EST 2011
Author: douglm
Date: 2011-03-08 09:56:47 -0500 (Tue, 08 Mar 2011)
New Revision: 1462
Modified:
releases/bedework-3.7/icalendar/src/org/bedework/icalendar/BwEventUtil.java
Log:
The suppressed master record that's generated as part of detached
instances does not support all-day events (VALUE=DATE). The attached
patch fixes this by setting DTSTART on the suppressed master record to
be VALUE=DATE based if the detached instance is also VALUE=DATE based.
DTSTART in the master record must match the same type as in the
detached instance or else the override of the supressed master record
will fail. Paul Fisher.
Modified: releases/bedework-3.7/icalendar/src/org/bedework/icalendar/BwEventUtil.java
===================================================================
--- releases/bedework-3.7/icalendar/src/org/bedework/icalendar/BwEventUtil.java 2011-03-05 20:59:22 UTC (rev 1461)
+++ releases/bedework-3.7/icalendar/src/org/bedework/icalendar/BwEventUtil.java 2011-03-08 14:56:47 UTC (rev 1462)
@@ -6,9 +6,9 @@
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
-
+
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -18,33 +18,13 @@
*/
package org.bedework.icalendar;
-import org.bedework.calfacade.BwCalendar;
-import org.bedework.calfacade.BwCategory;
-import org.bedework.calfacade.BwContact;
-import org.bedework.calfacade.BwEvent;
-import org.bedework.calfacade.BwEventObj;
-import org.bedework.calfacade.BwFreeBusyComponent;
-import org.bedework.calfacade.BwGeo;
-import org.bedework.calfacade.BwLocation;
-import org.bedework.calfacade.BwOrganizer;
-import org.bedework.calfacade.BwRecurrenceId;
-import org.bedework.calfacade.BwRelatedTo;
-import org.bedework.calfacade.BwRequestStatus;
-import org.bedework.calfacade.BwString;
-import org.bedework.calfacade.BwXproperty;
-import org.bedework.calfacade.RecurringRetrievalMode;
-import org.bedework.calfacade.RecurringRetrievalMode.Rmode;
-import org.bedework.calfacade.exc.CalFacadeException;
-import org.bedework.calfacade.svc.EventInfo;
-import org.bedework.calfacade.util.ChangeTable;
-import org.bedework.icalendar.Icalendar.TimeZoneInfo;
+import java.util.Collection;
+import java.util.Iterator;
-import edu.rpi.cmt.calendar.IcalDefs;
-import edu.rpi.sss.util.Util;
-
import net.fortuna.ical4j.model.CategoryList;
import net.fortuna.ical4j.model.Component;
import net.fortuna.ical4j.model.ComponentList;
+import net.fortuna.ical4j.model.Date;
import net.fortuna.ical4j.model.Parameter;
import net.fortuna.ical4j.model.ParameterList;
import net.fortuna.ical4j.model.Period;
@@ -60,6 +40,7 @@
import net.fortuna.ical4j.model.component.VToDo;
import net.fortuna.ical4j.model.parameter.AltRep;
import net.fortuna.ical4j.model.parameter.FbType;
+import net.fortuna.ical4j.model.parameter.Value;
import net.fortuna.ical4j.model.property.Attach;
import net.fortuna.ical4j.model.property.Attendee;
import net.fortuna.ical4j.model.property.Categories;
@@ -99,9 +80,30 @@
import net.fortuna.ical4j.model.property.Url;
import net.fortuna.ical4j.model.property.XProperty;
-import java.util.Collection;
-import java.util.Iterator;
+import org.bedework.calfacade.BwCalendar;
+import org.bedework.calfacade.BwCategory;
+import org.bedework.calfacade.BwContact;
+import org.bedework.calfacade.BwEvent;
+import org.bedework.calfacade.BwEventObj;
+import org.bedework.calfacade.BwFreeBusyComponent;
+import org.bedework.calfacade.BwGeo;
+import org.bedework.calfacade.BwLocation;
+import org.bedework.calfacade.BwOrganizer;
+import org.bedework.calfacade.BwRecurrenceId;
+import org.bedework.calfacade.BwRelatedTo;
+import org.bedework.calfacade.BwRequestStatus;
+import org.bedework.calfacade.BwString;
+import org.bedework.calfacade.BwXproperty;
+import org.bedework.calfacade.RecurringRetrievalMode;
+import org.bedework.calfacade.RecurringRetrievalMode.Rmode;
+import org.bedework.calfacade.exc.CalFacadeException;
+import org.bedework.calfacade.svc.EventInfo;
+import org.bedework.calfacade.util.ChangeTable;
+import org.bedework.icalendar.Icalendar.TimeZoneInfo;
+import edu.rpi.cmt.calendar.IcalDefs;
+import edu.rpi.sss.util.Util;
+
/** Class to provide utility methods for translating to BwEvent from ical4j classes
*
* @author Mike Douglass douglm at rpi.edu
@@ -345,14 +347,21 @@
// XXX This seems bogus
DtStart mdtStart;
- String bogusDate = "19980118T230000";
+ String bogusDate = "19980118";
+ String bogusTime = "T230000";
- if (dtStart.isUtc()) {
- mdtStart = new DtStart(bogusDate + "Z");
+ Parameter par = dtStart.getParameter("VALUE");
+ boolean isDateType = (par != null) && (par.equals(Value.DATE));
+
+ if (isDateType) {
+ mdtStart = new DtStart(new Date(bogusDate));
+ } else if (dtStart.isUtc()) {
+ mdtStart = new DtStart(bogusDate + bogusTime + "Z");
} else if (dtStart.getTimeZone() == null) {
- mdtStart = new DtStart(bogusDate);
+ mdtStart = new DtStart(bogusDate + bogusTime);
} else {
- mdtStart = new DtStart(bogusDate + "Z", dtStart.getTimeZone());
+ mdtStart = new DtStart(bogusDate + bogusTime + "Z",
+ dtStart.getTimeZone());
}
setDates(e, mdtStart, null, null, chg);
More information about the Bedework-commit
mailing list