Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / real-world application / jigsaw / src / org / w3c / www / http / HttpEntityTagList.java
diff --git a/JMCR-Stable/real-world application/jigsaw/src/org/w3c/www/http/HttpEntityTagList.java b/JMCR-Stable/real-world application/jigsaw/src/org/w3c/www/http/HttpEntityTagList.java
new file mode 100644 (file)
index 0000000..e505d5d
--- /dev/null
@@ -0,0 +1,78 @@
+// 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