Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / real-world application / jigsaw / src / org / w3c / www / http / HttpExt.java
diff --git a/JMCR-Stable/real-world application/jigsaw/src/org/w3c/www/http/HttpExt.java b/JMCR-Stable/real-world application/jigsaw/src/org/w3c/www/http/HttpExt.java
new file mode 100644 (file)
index 0000000..90ede18
--- /dev/null
@@ -0,0 +1,132 @@
+// HttpExt.java\r
+// $Id: HttpExt.java,v 1.1 2010/06/15 12:19:53 smhuang Exp $\r
+// (c) COPYRIGHT MIT and INRIA, 1998.\r
+// Please first read the full copyright statement in file COPYRIGHT.html\r
+\r
+package org.w3c.www.http;\r
+\r
+import java.util.Hashtable;\r
+import java.util.Enumeration;\r
+\r
+/**\r
+ * @version $Revision: 1.1 $\r
+ * @author  Benoît Mahé (bmahe@w3.org)\r
+ */\r
+public class HttpExt {\r
+\r
+    protected String    name      = null;\r
+    protected String    ns        = null;\r
+    protected Hashtable exts      = null;\r
+    protected boolean   generated = true;\r
+    protected boolean   headers   = false;\r
+\r
+    protected void setName(String name) {\r
+       this.name = name;\r
+    }\r
+\r
+    /**\r
+     * Get the http extension declaration name.\r
+     * @return a String instance\r
+     */\r
+    public String getName() {\r
+       return name;\r
+    }\r
+\r
+    protected void setNamespace(String ns) {\r
+       this.ns = ns;\r
+        this.headers = true;\r
+    }\r
+\r
+    /**\r
+     * Get the http extension declaration namespace.\r
+     * @return a String instance\r
+     */\r
+    public String getNamespace() {\r
+       return ns;\r
+    }\r
+\r
+    /**\r
+     * Does this extension needs specific headers?\r
+     * @return a boolean.\r
+     */\r
+    public boolean needsHeaders() {\r
+       return headers;\r
+    }\r
+\r
+    /**\r
+     * Add an http extension declaration <token/value>\r
+     * @param name the token name.\r
+     * @param value the value.     \r
+     */\r
+    public void addDeclExt(String token, String value) {\r
+       exts.put(token, value);\r
+    }\r
+\r
+    /**\r
+     * Get an http extension declaration token value.\r
+     * @param name the token name.\r
+     * @return a String instance\r
+     */\r
+    public String getDeclExt(String name) {\r
+       return (String)exts.get(name);\r
+    }\r
+\r
+    /**\r
+     * Get all http extension declaration <token/value>\r
+     * @return an Enumeration instance\r
+     */\r
+    public Enumeration getDeclExtNames() {\r
+       return exts.keys();\r
+    }\r
+\r
+    protected String getRealHeader(String header) {\r
+       return ns+header;\r
+    }\r
+\r
+    public String toString() {\r
+       String string = "\""+name+"\" ; ns="+ns;\r
+       Enumeration e = exts.keys();\r
+       while (e.hasMoreElements()) {\r
+           String tok = (String) e.nextElement();\r
+           String val = (String) exts.get(tok);\r
+           string += ("; "+tok+"="+val);\r
+       }\r
+       return string;\r
+    }\r
+\r
+    protected boolean isGenerated() {\r
+       return generated;\r
+    }\r
+\r
+    /**\r
+     * Constructor, for User\r
+     * @param name the Http extension declaration name \r
+     * @param header Does this extension needs specific headers?\r
+     * (absoluteURI or field-name)\r
+     */\r
+    public HttpExt(String name, boolean headers) {\r
+       this.generated = false;\r
+       this.name      = name;\r
+       this.exts      = new Hashtable(3);\r
+       this.headers   = headers;\r
+    }\r
+\r
+    /**\r
+     * Constructor, for User\r
+     * @param old the old Http extension declaration  \r
+     * If you want to reply the same extension, use this\r
+     * contructor.\r
+     */\r
+    public HttpExt(HttpExt old) {\r
+       this.generated = false;\r
+       this.name      = old.name;\r
+       this.exts      = new Hashtable(3);\r
+       this.headers   = old.headers;\r
+    }\r
+\r
+    protected HttpExt() {\r
+       this.generated = true;\r
+       this.headers   = false;\r
+       this.exts      = new Hashtable(3);\r
+    }\r
+}\r