Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / real-world application / jigsaw / src / org / w3c / jigsaw / webdav / DAVReply.java
diff --git a/JMCR-Stable/real-world application/jigsaw/src/org/w3c/jigsaw/webdav/DAVReply.java b/JMCR-Stable/real-world application/jigsaw/src/org/w3c/jigsaw/webdav/DAVReply.java
new file mode 100644 (file)
index 0000000..b2d741e
--- /dev/null
@@ -0,0 +1,124 @@
+// DAVReply.java\r
+// $Id: DAVReply.java,v 1.1 2010/06/15 12:29:40 smhuang Exp $\r
+// (c) COPYRIGHT MIT, INRIA and Keio, 2000.\r
+// Please first read the full copyright statement in file COPYRIGHT.html\r
+package org.w3c.jigsaw.webdav;\r
+\r
+import org.w3c.jigsaw.http.Request;\r
+import org.w3c.jigsaw.http.Reply;\r
+import org.w3c.jigsaw.http.Client;\r
+\r
+import org.w3c.tools.resources.ResourceFilter;\r
+\r
+import org.w3c.www.http.HttpFactory;\r
+import org.w3c.www.http.HeaderValue;\r
+\r
+import org.w3c.www.webdav.WEBDAV;\r
+import org.w3c.www.webdav.DAVStatusURIList;\r
+import org.w3c.www.webdav.DAVStatusURI;\r
+\r
+\r
+/**\r
+ * @version $Revision: 1.1 $\r
+ * @author  Benoît Mahé (bmahe@w3.org)\r
+ */\r
+public class DAVReply extends Reply implements WEBDAV {\r
+    \r
+    static {\r
+       registerHeader(DAV_HEADER, \r
+                      "org.w3c.www.http.HttpString");\r
+       registerHeader(LOCK_TOKEN_HEADER, \r
+                      "org.w3c.www.http.HttpString");\r
+       registerHeader(STATUS_URI_HEADER, \r
+                      "org.w3c.www.webdav.DAVStatusURIList"); \r
+    }\r
+\r
+    public void setLockToken(String token) {\r
+       setHeaderValue(LOCK_TOKEN_HEADER, HttpFactory.makeString(token));\r
+    }\r
+\r
+    public String getLockToken() {\r
+       HeaderValue value = getHeaderValue(LOCK_TOKEN_HEADER);\r
+       return (value != null) ? (String) value.getValue() : null;\r
+    }\r
+\r
+    public void setStatusURI(int status, String uri) {\r
+       DAVStatusURIList list = \r
+           (DAVStatusURIList)getHeaderValue(STATUS_URI_HEADER);\r
+       DAVStatusURI dsu = new DAVStatusURI(status, uri);\r
+       if (list == null) {\r
+           list = new DAVStatusURIList(dsu);\r
+       } else {\r
+           list.addStatusURI(dsu);\r
+       }\r
+       setHeaderValue(STATUS_URI_HEADER, list);\r
+    }\r
+\r
+    public DAVStatusURI[] getStatusURI() {\r
+       HeaderValue value = getHeaderValue(STATUS_URI_HEADER);\r
+       return (value != null) ? (DAVStatusURI[]) value.getValue() : null;\r
+    }\r
+\r
+\r
+    public void setDAV(String dav) {\r
+       setHeaderValue(DAV_HEADER, HttpFactory.makeString(dav));\r
+    }\r
+\r
+    protected void setFilters(ResourceFilter filters[], int infilters) {\r
+       super.setFilters(filters, infilters);\r
+    }\r
+\r
+    /**\r
+     * Get the standard HTTP & WEBDAV reason phrase for the given status code.\r
+     * @param status The given status code.\r
+     * @return A String giving the standard reason phrase, or\r
+     * <strong>null</strong> if the status doesn't match any knowned error.\r
+     */\r
+\r
+    public String getStandardReason(int status) {\r
+       return getDAVReason(status);\r
+    }\r
+\r
+    public static String getDAVReason(int status) {\r
+       int category = status / 100;\r
+       int catcode  = status % 100;\r
+       switch(category) {\r
+         case 1:\r
+             if ((catcode >= 0) && (catcode < dav_msg_100.length))\r
+                 return dav_msg_100[catcode];\r
+             break;\r
+         case 2:\r
+             if ((catcode >= 0) && (catcode < dav_msg_200.length))\r
+                 return dav_msg_200[catcode];\r
+             break;\r
+         case 3:\r
+             if ((catcode >= 0) && (catcode < dav_msg_300.length))\r
+                 return dav_msg_300[catcode];\r
+             break;\r
+         case 4:\r
+             if ((catcode >= 0) && (catcode < dav_msg_400.length))\r
+                 return dav_msg_400[catcode];\r
+             break;\r
+         case 5:\r
+             if ((catcode >= 0) && (catcode < dav_msg_500.length))\r
+                 return dav_msg_500[catcode];\r
+             break;\r
+       }\r
+       return null;\r
+    }\r
+    \r
+    /**\r
+     * Create a new reply for the given client.\r
+     * @param client The client ot who the reply is directed.\r
+     * @reply status The reply status code.\r
+     */\r
+    public DAVReply(Client client, \r
+                   Request request, \r
+                   short major, \r
+                   short minor,\r
+                   int status) \r
+    {\r
+       super(client, request, major, minor, status);\r
+    }\r
+\r
+}\r