[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