[Bedework-commit] caldav r136 - trunk/server/src/org/bedework/caldav/server

svnadmin at bedework.org svnadmin at bedework.org
Sat Mar 24 23:06:05 EDT 2007


Author: douglm
Date: 2007-03-24 23:06:02 -0400 (Sat, 24 Mar 2007)
New Revision: 136

Modified:
   trunk/server/src/org/bedework/caldav/server/CaldavCalNode.java
   trunk/server/src/org/bedework/caldav/server/CaldavComponentNode.java
   trunk/server/src/org/bedework/caldav/server/CaldavPrincipalNode.java
Log:
Changes to setting of CalDAV properties

Also fail all when any fails

Modified: trunk/server/src/org/bedework/caldav/server/CaldavCalNode.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/CaldavCalNode.java	2007-03-25 00:38:43 UTC (rev 135)
+++ trunk/server/src/org/bedework/caldav/server/CaldavCalNode.java	2007-03-25 03:06:02 UTC (rev 136)
@@ -193,60 +193,6 @@
     return "W/\"" + val + "\"";
   }
 
-  /* (non-Javadoc)
-   * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#removeProperty(org.w3c.dom.Element)
-   */
-  public SetPropertyResult removeProperty(Element val) throws WebdavException {
-    warn("Unimplemented - removeProperty");
-    SetPropertyResult spr = new SetPropertyResult(val);
-    spr.status = HttpServletResponse.SC_NOT_IMPLEMENTED;
-    spr.message = "Unimplemented - removeProperty";
-
-    return spr;
-  }
-
-  /* (non-Javadoc)
-   * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#setProperty(org.w3c.dom.Element)
-   */
-  public SetPropertyResult setProperty(Element val) throws WebdavException {
-    SetPropertyResult spr = new SetPropertyResult(val);
-
-    if (cal == null) {
-      spr.status = HttpServletResponse.SC_NOT_FOUND;
-      spr.message = "Not found";
-      return spr;
-    }
-
-    try {
-      if (WebdavTags.description.nodeMatches(val)) {
-        cal.setDescription(XmlUtil.getElementContent(val));
-      } else if (CaldavTags.calendarDescription.nodeMatches(val)) {
-        cal.setDescription(XmlUtil.getElementContent(val));
-      } else if (WebdavTags.displayname.nodeMatches(val)) {
-        cal.setSummary(XmlUtil.getElementContent(val));
-      } else if (CaldavTags.calendarFreeBusySet.nodeMatches(val)) {
-        // Only valid for inbox
-        if (cal.getCalType() != BwCalendar.calTypeInbox) {
-          throw new WebdavForbidden("Not on inbox");
-        }
-
-        spr.status = HttpServletResponse.SC_NOT_IMPLEMENTED;
-        spr.message = "Unimplemented - calendarFreeBusySet";
-        warn("Unimplemented - calendarFreeBusySet");
-      } else if (CaldavTags.calendarTimezone.nodeMatches(val)) {
-        warn("Unimplemented - calendarTimezone");
-      } else {
-        spr.status = HttpServletResponse.SC_NOT_IMPLEMENTED;
-      }
-
-      return spr;
-    } catch (WebdavException wde) {
-      throw wde;
-    } catch (Throwable t) {
-      throw new WebdavException(t);
-    }
-  }
-
   /**
    * @return true if scheduling allowed
    * @throws WebdavException
@@ -429,6 +375,72 @@
    * ==================================================================== */
 
   /* (non-Javadoc)
+   * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#removeProperty(org.w3c.dom.Element)
+   */
+  public boolean removeProperty(Element val,
+                                SetPropertyResult spr) throws WebdavException {
+    warn("Unimplemented - removeProperty");
+
+    return false;
+  }
+
+  /* (non-Javadoc)
+   * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#setProperty(org.w3c.dom.Element)
+   */
+  public boolean setProperty(Element val,
+                             SetPropertyResult spr) throws WebdavException {
+    if (super.setProperty(val, spr)) {
+      return true;
+    }
+
+    try {
+      if (WebdavTags.description.nodeMatches(val)) {
+        if (checkCalForSetProp(spr)) {
+          cal.setDescription(XmlUtil.getElementContent(val));
+        }
+        return true;
+      }
+
+      if (CaldavTags.calendarDescription.nodeMatches(val)) {
+        if (checkCalForSetProp(spr)) {
+          cal.setDescription(XmlUtil.getElementContent(val));
+        }
+        return true;
+      }
+
+      if (WebdavTags.displayname.nodeMatches(val)) {
+        if (checkCalForSetProp(spr)) {
+          cal.setSummary(XmlUtil.getElementContent(val));
+        }
+        return true;
+      }
+
+      if (CaldavTags.calendarFreeBusySet.nodeMatches(val)) {
+        // Only valid for inbox
+        if (cal.getCalType() != BwCalendar.calTypeInbox) {
+          throw new WebdavForbidden("Not on inbox");
+        }
+
+        spr.status = HttpServletResponse.SC_NOT_IMPLEMENTED;
+        spr.message = "Unimplemented - calendarFreeBusySet";
+        warn("Unimplemented - calendarFreeBusySet");
+        return true;
+      }
+
+      if (CaldavTags.calendarTimezone.nodeMatches(val)) {
+        warn("Unimplemented - calendarTimezone");
+        return true;
+      }
+
+      return false;
+    } catch (WebdavException wde) {
+      throw wde;
+    } catch (Throwable t) {
+      throw new WebdavException(t);
+    }
+  }
+
+  /* (non-Javadoc)
    * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#generatePropertyValue(edu.rpi.sss.util.xml.QName, edu.rpi.cct.webdav.servlet.shared.WebdavNsIntf, boolean)
    */
   public boolean generatePropertyValue(QName tag,
@@ -572,4 +584,14 @@
   /* ====================================================================
    *                   Private methods
    * ==================================================================== */
+
+  private boolean checkCalForSetProp(SetPropertyResult spr) {
+    if (cal != null) {
+      return true;
+    }
+
+    spr.status = HttpServletResponse.SC_NOT_FOUND;
+    spr.message = "Not found";
+    return false;
+  }
 }

Modified: trunk/server/src/org/bedework/caldav/server/CaldavComponentNode.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/CaldavComponentNode.java	2007-03-25 00:38:43 UTC (rev 135)
+++ trunk/server/src/org/bedework/caldav/server/CaldavComponentNode.java	2007-03-25 03:06:02 UTC (rev 136)
@@ -82,8 +82,6 @@
 import java.util.HashMap;
 import java.util.Iterator;
 
-import javax.servlet.http.HttpServletResponse;
-
 /** Class to represent an entity such as events in caldav.
  *
  *   @author Mike Douglass   douglm at rpi.edu
@@ -239,25 +237,23 @@
   /* (non-Javadoc)
    * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#removeProperty(org.w3c.dom.Element)
    */
-  public SetPropertyResult removeProperty(Element val) throws WebdavException {
+  public boolean removeProperty(Element val,
+                                SetPropertyResult spr) throws WebdavException {
     warn("Unimplemented - removeProperty");
-    SetPropertyResult spr = new SetPropertyResult(val);
-    spr.status = HttpServletResponse.SC_NOT_IMPLEMENTED;
-    spr.message = "Unimplemented - removeProperty";
 
-    return spr;
+    return false;
   }
 
   /* (non-Javadoc)
    * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#setProperty(org.w3c.dom.Element)
    */
-  public SetPropertyResult setProperty(Element val) throws WebdavException {
-    SetPropertyResult spr = new SetPropertyResult(val);
+  public boolean setProperty(Element val,
+                             SetPropertyResult spr) throws WebdavException {
+    if (super.setProperty(val, spr)) {
+      return true;
+    }
 
-    spr.status = HttpServletResponse.SC_NOT_IMPLEMENTED;
-    spr.message = "Unimplemented - setProperty";
-
-    return spr;
+    return false;
   }
 
   /** Get a Component form of the only or master event. Mainly for property

Modified: trunk/server/src/org/bedework/caldav/server/CaldavPrincipalNode.java
===================================================================
--- trunk/server/src/org/bedework/caldav/server/CaldavPrincipalNode.java	2007-03-25 00:38:43 UTC (rev 135)
+++ trunk/server/src/org/bedework/caldav/server/CaldavPrincipalNode.java	2007-03-25 03:06:02 UTC (rev 136)
@@ -65,8 +65,6 @@
 
 import java.util.Collection;
 
-import javax.servlet.http.HttpServletResponse;
-
 /** Class to represent a principal in caldav.
  *
  *
@@ -101,30 +99,6 @@
     return displayName;
   }
 
-  /* (non-Javadoc)
-   * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#removeProperty(org.w3c.dom.Element)
-   */
-  public SetPropertyResult removeProperty(Element val) throws WebdavException {
-    warn("Unimplemented - removeProperty");
-    SetPropertyResult spr = new SetPropertyResult(val);
-    spr.status = HttpServletResponse.SC_NOT_IMPLEMENTED;
-    spr.message = "Unimplemented - removeProperty";
-
-    return spr;
-  }
-
-  /* (non-Javadoc)
-   * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#setProperty(org.w3c.dom.Element)
-   */
-  public SetPropertyResult setProperty(Element val) throws WebdavException {
-    SetPropertyResult spr = new SetPropertyResult(val);
-
-    spr.status = HttpServletResponse.SC_NOT_IMPLEMENTED;
-    spr.message = "Unimplemented - setProperty";
-
-    return spr;
-  }
-
   public Collection getChildren() throws WebdavException {
     return null;
   }
@@ -205,6 +179,28 @@
    * ==================================================================== */
 
   /* (non-Javadoc)
+   * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#removeProperty(org.w3c.dom.Element)
+   */
+  public boolean removeProperty(Element val,
+                                SetPropertyResult spr) throws WebdavException {
+    warn("Unimplemented - removeProperty");
+
+    return false;
+  }
+
+  /* (non-Javadoc)
+   * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#setProperty(org.w3c.dom.Element)
+   */
+  public boolean setProperty(Element val,
+                             SetPropertyResult spr) throws WebdavException {
+    if (super.setProperty(val, spr)) {
+      return true;
+    }
+
+    return false;
+  }
+
+  /* (non-Javadoc)
    * @see edu.rpi.cct.webdav.servlet.shared.WebdavNsNode#generatePropertyValue(edu.rpi.sss.util.xml.QName, edu.rpi.cct.webdav.servlet.shared.WebdavNsIntf, boolean)
    */
   public boolean generatePropertyValue(QName tag,



More information about the Bedework-commit mailing list