--- /dev/null
+// DAVStatusURIList.java\r
+// $Id: DAVStatusURIList.java,v 1.1 2010/06/15 12:27:42 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.www.webdav;\r
+\r
+import java.util.Vector;\r
+\r
+import org.w3c.www.http.BasicValue;\r
+\r
+/**\r
+ * @version $Revision: 1.1 $\r
+ * @author Benoît Mahé (bmahe@w3.org)\r
+ */\r
+public class DAVStatusURIList extends BasicValue {\r
+\r
+ public static final boolean debug = false;\r
+ \r
+ DAVStatusURI statusURIs[] = null;\r
+\r
+ protected void parse() {\r
+ Vector vstatus = new Vector();\r
+ if (debug) {\r
+ System.out.println("PARSING STATUS URI HEADER");\r
+ }\r
+ ParseState list = new ParseState(0, raw.length);\r
+ list.separator = (byte) ')';\r
+ list.spaceIsSep = false;\r
+ ParseState blist = new ParseState(0, 0);\r
+ blist.separator = (byte) '(';\r
+ blist.spaceIsSep = false;\r
+ DAVStatusURI dsu = null;\r
+ while (DAVParser.nextItem(raw, list) >= 0) {\r
+ blist.prepare(list);\r
+ while (DAVParser.nextItem(raw, blist) >= 0) {\r
+ dsu = new DAVStatusURI(raw, blist.start, blist.end);\r
+ addStatusURI(dsu);\r
+ }\r
+ }\r
+ }\r
+\r
+ protected void updateByteValue() {\r
+ if (statusURIs != null) {\r
+ StringBuffer buf = new StringBuffer();\r
+ for (int i = 0; i < statusURIs.length ; i++) {\r
+ DAVStatusURI dsu = statusURIs[i];\r
+ buf.append("(").append(dsu.getStatus()).append(" ");\r
+ buf.append("<").append(dsu.getURI()).append(">) ");\r
+ }\r
+ raw = buf.toString().getBytes();\r
+ roff = 0;\r
+ rlen = raw.length;\r
+ } else {\r
+ raw = new byte[0];\r
+ roff = 0;\r
+ rlen = 0;\r
+ }\r
+ }\r
+\r
+ public void addStatusURI(DAVStatusURI su) {\r
+ if ( statusURIs == null ) {\r
+ statusURIs = new DAVStatusURI[1];\r
+ statusURIs[0] = su;\r
+ } else {\r
+ int len = statusURIs.length;\r
+ DAVStatusURI nsu[] = new DAVStatusURI[len+1];\r
+ System.arraycopy(statusURIs, 0, nsu, 0, len);\r
+ nsu[len] = su;\r
+ statusURIs = nsu;\r
+ }\r
+ }\r
+\r
+ public Object getValue() {\r
+ validate();\r
+ return statusURIs;\r
+ }\r
+\r
+ /**\r
+ * Don't use this constructor\r
+ */\r
+ public DAVStatusURIList() {\r
+ this.isValid = false;\r
+ }\r
+\r
+ public DAVStatusURIList(DAVStatusURI dsu[]) {\r
+ this.isValid = true;\r
+ this.statusURIs = dsu;\r
+ }\r
+\r
+ public DAVStatusURIList(DAVStatusURI dsu) {\r
+ this.isValid = true;\r
+ this.statusURIs = new DAVStatusURI[1];\r
+ statusURIs[0] = dsu;\r
+ }\r
+ \r
+}\r