001: // HttpExt.java
002: // $Id: HttpExt.java,v 1.7 2007/02/09 22:20:53 ylafon Exp $
003: // (c) COPYRIGHT MIT and INRIA, 1998.
004: // Please first read the full copyright statement in file COPYRIGHT.html
005:
006: package org.w3c.www.http;
007:
008: import java.util.Hashtable;
009: import java.util.Enumeration;
010:
011: /**
012: * @version $Revision: 1.7 $
013: * @author Benoît Mahé (bmahe@w3.org)
014: */
015: public class HttpExt {
016:
017: protected String name = null;
018: protected String ns = null;
019: protected Hashtable exts = null;
020: protected boolean generated = true;
021: protected boolean headers = false;
022:
023: protected void setName(String name) {
024: this .name = name;
025: }
026:
027: /**
028: * Get the http extension declaration name.
029: * @return a String instance
030: */
031: public String getName() {
032: return name;
033: }
034:
035: protected void setNamespace(String ns) {
036: this .ns = ns;
037: this .headers = true;
038: }
039:
040: /**
041: * Get the http extension declaration namespace.
042: * @return a String instance
043: */
044: public String getNamespace() {
045: return ns;
046: }
047:
048: /**
049: * Does this extension needs specific headers?
050: * @return a boolean.
051: */
052: public boolean needsHeaders() {
053: return headers;
054: }
055:
056: /**
057: * Add an http extension declaration <token/value>
058: * @param name the token name.
059: * @param value the value.
060: */
061: public void addDeclExt(String token, String value) {
062: exts.put(token, value);
063: }
064:
065: /**
066: * Get an http extension declaration token value.
067: * @param name the token name.
068: * @return a String instance
069: */
070: public String getDeclExt(String name) {
071: return (String) exts.get(name);
072: }
073:
074: /**
075: * Get all http extension declaration <token/value>
076: * @return an Enumeration instance
077: */
078: public Enumeration getDeclExtNames() {
079: return exts.keys();
080: }
081:
082: protected String getRealHeader(String header) {
083: return ns + header;
084: }
085:
086: public String toString() {
087: String string = "\"" + name + "\" ; ns=" + ns;
088: Enumeration e = exts.keys();
089: while (e.hasMoreElements()) {
090: String tok = (String) e.nextElement();
091: String val = (String) exts.get(tok);
092: string += ("; " + tok + "=" + val);
093: }
094: return string;
095: }
096:
097: protected boolean isGenerated() {
098: return generated;
099: }
100:
101: /**
102: * Constructor, for User
103: * @param name the Http extension declaration name
104: * @param header Does this extension needs specific headers?
105: * (absoluteURI or field-name)
106: */
107: public HttpExt(String name, boolean headers) {
108: this .generated = false;
109: this .name = name;
110: this .exts = new Hashtable(3);
111: this .headers = headers;
112: }
113:
114: /**
115: * Constructor, for User
116: * @param old the old Http extension declaration
117: * If you want to reply the same extension, use this
118: * contructor.
119: */
120: public HttpExt(HttpExt old) {
121: this .generated = false;
122: this .name = old.name;
123: this .exts = new Hashtable(3);
124: this .headers = old.headers;
125: }
126:
127: protected HttpExt() {
128: this .generated = true;
129: this .headers = false;
130: this .exts = new Hashtable(3);
131: }
132: }
|