[Bedework-commit] calendarapi r589 -
releases/bedework-3.4.1/icalendar/src/org/bedework/icalendar
svnadmin at bedework.org
svnadmin at bedework.org
Thu Apr 3 16:41:03 EDT 2008
Author: douglm
Date: 2008-04-03 16:41:02 -0400 (Thu, 03 Apr 2008)
New Revision: 589
Modified:
releases/bedework-3.4.1/icalendar/src/org/bedework/icalendar/IcalTranslator.java
releases/bedework-3.4.1/icalendar/src/org/bedework/icalendar/VEventUtil.java
Log:
Output x-properties when converting to icalendar
Modified: releases/bedework-3.4.1/icalendar/src/org/bedework/icalendar/IcalTranslator.java
===================================================================
--- releases/bedework-3.4.1/icalendar/src/org/bedework/icalendar/IcalTranslator.java 2008-04-01 18:48:58 UTC (rev 588)
+++ releases/bedework-3.4.1/icalendar/src/org/bedework/icalendar/IcalTranslator.java 2008-04-03 20:41:02 UTC (rev 589)
@@ -74,6 +74,9 @@
import net.fortuna.ical4j.model.component.VTimeZone;
import net.fortuna.ical4j.model.component.VVenue;
import net.fortuna.ical4j.model.ComponentList;
+import net.fortuna.ical4j.model.Parameter;
+import net.fortuna.ical4j.model.ParameterFactoryImpl;
+import net.fortuna.ical4j.model.ParameterList;
import net.fortuna.ical4j.model.Property;
import net.fortuna.ical4j.model.PropertyList;
import net.fortuna.ical4j.model.TimeZone;
@@ -501,10 +504,55 @@
}
}
+ /** Parse parameters and return a parameter list.
+ *
+ * @param parList String parameter list
+ * @return ParameterList
+ * @throws CalFacadeException
+ */
+ public static ParameterList parseParameters(String parList) throws CalFacadeException {
+ ParameterList pl = new ParameterList();
+
+ if (parList == null) {
+ return pl;
+ }
+
+ String[] pars = parList.split(";");
+ for (String par: pars) {
+ if ((par != null) && (par.length() > 0)) {
+ pl.add(parseParameter(par, parList));
+ }
+ }
+
+ return pl;
+ }
+
/* ====================================================================
Private methods
==================================================================== */
+ private static Parameter parseParameter(String par,
+ String parList) throws CalFacadeException {
+ int pos = par.indexOf('=');
+ if (pos < 0) {
+ throw new CalFacadeException(CalFacadeException.badRequest, parList);
+ }
+
+ String pname = par.substring(0, pos);
+
+ String val = null;
+ if (pos == par.length()) {
+ val = par.substring(pos + 1);
+ }
+
+ try {
+ return ParameterFactoryImpl.getInstance().createParameter(pname.toUpperCase(),
+ val);
+ } catch (Throwable t) {
+ throw new CalFacadeException(CalFacadeException.badRequest, parList);
+ }
+ }
+
private void addToCalendar(Calendar cal,
EventInfo val,
TreeSet<String> added) throws CalFacadeException {
Modified: releases/bedework-3.4.1/icalendar/src/org/bedework/icalendar/VEventUtil.java
===================================================================
--- releases/bedework-3.4.1/icalendar/src/org/bedework/icalendar/VEventUtil.java 2008-04-01 18:48:58 UTC (rev 588)
+++ releases/bedework-3.4.1/icalendar/src/org/bedework/icalendar/VEventUtil.java 2008-04-03 20:41:02 UTC (rev 589)
@@ -66,6 +66,7 @@
import org.bedework.calfacade.BwContact;
import org.bedework.calfacade.BwRelatedTo;
import org.bedework.calfacade.BwString;
+import org.bedework.calfacade.BwXproperty;
import org.bedework.calfacade.CalFacadeDefs;
import org.bedework.calfacade.base.BwStringBase;
import org.bedework.calfacade.exc.CalFacadeException;
@@ -121,6 +122,7 @@
import net.fortuna.ical4j.model.property.Transp;
import net.fortuna.ical4j.model.property.Uid;
import net.fortuna.ical4j.model.property.Url;
+import net.fortuna.ical4j.model.property.XProperty;
import net.fortuna.ical4j.model.PropertyList;
import java.net.URI;
@@ -458,6 +460,26 @@
pl.add(new Url(new URI(strval)));
}
+ /* ------------------- X-PROPS -------------------- */
+
+ if (val.getNumXproperties() > 0) {
+ /* This event has x-props */
+
+ try {
+ for (BwXproperty x: val.getXproperties()) {
+ XProperty xp = new XProperty(x.getName(),
+ IcalTranslator.parseParameters(x.getPars()),
+ x.getValue());
+ pl.add(xp);
+ }
+ } catch (Throwable t) {
+ // XXX For the moment swallow these.
+ error(t);
+ }
+ }
+
+ /* ------------------- Overrides -------------------- */
+
if (!isOverride && val.getRecurring().booleanValue()) {
doRecurring(val, pl);
}
More information about the Bedework-commit
mailing list