[Bedework-commit] r420 - in trunk/calendar3:
caldav/src/edu/rpi/cct/uwcal/caldav/calquery
calsvc/src/org/bedework/calsvc test/src/org/bedework/tests/caldav
svnadmin at bedework.org
svnadmin at bedework.org
Fri Apr 28 11:57:22 EDT 2006
Author: douglm
Date: 2006-04-28 11:57:22 -0400 (Fri, 28 Apr 2006)
New Revision: 420
Modified:
trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/calquery/FreeBusyQuery.java
trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java
trunk/calendar3/test/src/org/bedework/tests/caldav/Req.java
Log:
Caldav-test: Add primitive token support in data
Fixes to caldav free/busy
Modified: trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/calquery/FreeBusyQuery.java
===================================================================
--- trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/calquery/FreeBusyQuery.java 2006-04-28 13:48:22 UTC (rev 419)
+++ trunk/calendar3/caldav/src/edu/rpi/cct/uwcal/caldav/calquery/FreeBusyQuery.java 2006-04-28 15:57:22 UTC (rev 420)
@@ -59,7 +59,6 @@
import org.bedework.calsvci.CalSvcI;
import org.bedework.davdefs.CaldavTags;
-
import edu.rpi.cct.uwcal.caldav.CalDavParseUtil;
import edu.rpi.cct.uwcal.caldav.CaldavBWIntf;
import edu.rpi.cct.uwcal.caldav.TimeRange;
@@ -68,10 +67,9 @@
import edu.rpi.cct.webdav.servlet.shared.WebdavException;
import edu.rpi.cct.webdav.servlet.shared.WebdavNsIntf;
-
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
-import java.util.Vector;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
@@ -109,7 +107,7 @@
public int parse(Node nd) throws WebdavException {
try {
if (timeRanges == null) {
- timeRanges = new Vector();
+ timeRanges = new ArrayList();
}
if (!MethodBase.nodeMatches(nd, CaldavTags.timeRange)) {
@@ -139,7 +137,7 @@
*/
public Collection getFreeBusy(CalSvcI svci, String user) throws WebdavException {
Iterator it = timeRanges.iterator();
- Collection fbs = new Vector();
+ Collection fbs = new ArrayList();
while (it.hasNext()) {
TimeRange tr = (TimeRange)it.next();
Modified: trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java
===================================================================
--- trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java 2006-04-28 13:48:22 UTC (rev 419)
+++ trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java 2006-04-28 15:57:22 UTC (rev 420)
@@ -1146,10 +1146,6 @@
return fb;
}
- /* For the moment just build a single BwFreeBusyComponent
- */
- BwFreeBusyComponent fbc = new BwFreeBusyComponent();
-
Iterator it = events.iterator();
TreeSet eventPeriods = new TreeSet();
@@ -1180,8 +1176,13 @@
dend = eend.getDtval();
}
- eventPeriods.add(new EventPeriod(new DateTime(dstart),
- new DateTime(dend)));
+ DateTime psdt = new DateTime(dstart);
+ DateTime pedt = new DateTime(dend);
+
+ psdt.setUtc(true);
+ pedt.setUtc(true);
+
+ eventPeriods.add(new EventPeriod(psdt, pedt));
}
/* iterate through the sorted periods combining them where they are
@@ -1189,6 +1190,10 @@
Period p = null;
+ /* For the moment just build a single BwFreeBusyComponent
+ */
+ BwFreeBusyComponent fbc = null;
+
it = eventPeriods.iterator();
while (it.hasNext()) {
EventPeriod ep = (EventPeriod)it.next();
@@ -1197,6 +1202,9 @@
p = new Period(ep.start, ep.end);
} else if (ep.start.after(p.getEnd())) {
// Non adjacent periods
+ if (fbc == null) {
+ fbc = new BwFreeBusyComponent();
+ }
fbc.addPeriod(p);
p = new Period(ep.start, ep.end);
} else if (ep.end.after(p.getEnd())) {
@@ -1206,10 +1214,15 @@
}
if (p != null) {
+ if (fbc == null) {
+ fbc = new BwFreeBusyComponent();
+ }
fbc.addPeriod(p);
}
- fb.addTime(fbc);
+ if (fbc != null) {
+ fb.addTime(fbc);
+ }
} catch (Throwable t) {
throw new CalFacadeException(t);
}
Modified: trunk/calendar3/test/src/org/bedework/tests/caldav/Req.java
===================================================================
--- trunk/calendar3/test/src/org/bedework/tests/caldav/Req.java 2006-04-28 13:48:22 UTC (rev 419)
+++ trunk/calendar3/test/src/org/bedework/tests/caldav/Req.java 2006-04-28 15:57:22 UTC (rev 420)
@@ -54,12 +54,17 @@
package org.bedework.tests.caldav;
+import org.bedework.calfacade.CalFacadeUtil;
+
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.LineNumberReader;
-import java.util.Vector;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
import org.apache.commons.httpclient.Header;
@@ -101,8 +106,8 @@
frdr = new FileReader(testFile);
LineNumberReader lnr = new LineNumberReader(frdr);
- Vector headers = null;
- Vector cont = null;
+ Collection headers = null;
+ Collection cont = null;
do {
String ln = lnr.readLine();
@@ -150,7 +155,7 @@
HEADER
*/
if (headers == null) {
- headers = new Vector();
+ headers = new ArrayList();
}
String hdr = ln.substring(hdrHdr.length());
@@ -184,7 +189,7 @@
CONTENT
*/
if (cont == null) {
- cont = new Vector();
+ cont = new ArrayList();
}
} else {
throw new Exception("Bad test data file " + testFileName);
@@ -310,7 +315,8 @@
sb.append(content[i]);
sb.append("\n");
}
- contentBytes = sb.toString().getBytes();
+ contentBytes = detokenizeContent(sb);
+
return contentBytes;
}
@@ -331,9 +337,61 @@
baos.write(x);
} while (true);
- contentBytes = baos.toByteArray();
+ contentBytes = detokenizeContent(new StringBuffer(baos.toString()));
return contentBytes;
}
+
+ /* Replace any of our tokens with values. Pretty primitive at the moment.
+ *
+ */
+ private byte[] detokenizeContent(StringBuffer val) {
+ replaceToken(val, "@NOW@");
+
+ replaceToken(val, "@TOMORROW@");
+
+ replaceToken(val, "@NEXTWEEK@");
+
+ return val.toString().getBytes();
+ }
+
+ private void replaceToken(StringBuffer sb, String token) {
+ int len = token.length();
+ int pos = 0;
+ String val = null;
+
+ while (true) {
+ pos = sb.indexOf(token, pos);
+ if (pos < 0) {
+ return;
+ }
+
+ if (val == null) {
+ val = getTokenValue(token);
+ }
+
+ sb.replace(pos, pos + len, val);
+ }
+ }
+
+ private String getTokenValue(String token) {
+ if (token.equals("@NOW@")) {
+ return CalFacadeUtil.isoDateTimeUTC(new Date());
+ }
+
+ if (token.equals("@TOMORROW@")) {
+ Calendar cal = Calendar.getInstance();
+ cal.add(Calendar.DATE, 1);
+ return CalFacadeUtil.isoDateTimeUTC(cal.getTime());
+ }
+
+ if (token.equals("@NEXTWEEK@")) {
+ Calendar cal = Calendar.getInstance();
+ cal.add(Calendar.WEEK_OF_YEAR, 1);
+ return CalFacadeUtil.isoDateTimeUTC(cal.getTime());
+ }
+
+ return null;
+ }
}
More information about the Bedework-commit
mailing list