--- /dev/null
+// HttpEntityTagList.java\r
+// $Id: HttpEntityTagList.java,v 1.1 2010/06/15 12:19:47 smhuang Exp $\r
+// (c) COPYRIGHT MIT and INRIA, 1996.\r
+// Please first read the full copyright statement in file COPYRIGHT.html\r
+\r
+package org.w3c.www.http;\r
+\r
+import java.util.Vector;\r
+\r
+public class HttpEntityTagList extends BasicValue {\r
+ HttpEntityTag etags[] = null;\r
+\r
+ protected void parse() {\r
+ Vector vtags = new Vector(8);\r
+ ParseState ps = new ParseState();\r
+ ps.ioff = 0;\r
+ ps.bufend = raw.length;\r
+ ps.separator = (byte) ',';\r
+ while (HttpParser.nextItem(raw, ps) >= 0) {\r
+ HttpEntityTag tag = new HttpEntityTag(this, raw, ps.start, ps.end);\r
+ vtags.addElement(tag);\r
+ ps.prepare();\r
+ }\r
+ etags = new HttpEntityTag[vtags.size()];\r
+ vtags.copyInto(etags);\r
+ }\r
+\r
+ protected void updateByteValue() {\r
+ HttpBuffer buf = new HttpBuffer();\r
+ if ( etags != null ) {\r
+ for (int i = 0 ; i < etags.length ; i++) {\r
+ if ( i > 0 )\r
+ buf.append(',');\r
+ etags[i].appendValue(buf);\r
+ }\r
+ raw = buf.getByteCopy();\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 Object getValue() {\r
+ validate();\r
+ return etags;\r
+ }\r
+\r
+ /**\r
+ * Add a tag to that list.\r
+ * @param tag The new tag to add.\r
+ */\r
+\r
+ public void addTag(HttpEntityTag tag) {\r
+ if ( etags == null ) {\r
+ etags = new HttpEntityTag[1];\r
+ etags[0] = tag;\r
+ } else {\r
+ int len = etags.length;\r
+ HttpEntityTag ntags[] = new HttpEntityTag[len+1];\r
+ System.arraycopy(etags, 0, ntags, 0, len);\r
+ ntags[len] = tag;\r
+ etags = ntags;\r
+ }\r
+ }\r
+\r
+ HttpEntityTagList() {\r
+ this.isValid = false;\r
+ }\r
+\r
+ HttpEntityTagList(HttpEntityTag etags[]) {\r
+ this.isValid = true;\r
+ this.etags = etags;\r
+ }\r
+\r
+}\r