00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 package org.knopflerfish.framework;
00036
00037 import java.util.Map;
00038 import java.util.Iterator;
00039 import java.util.Dictionary;
00040 import java.util.Enumeration;
00041 import java.util.Hashtable;
00042
00043 import java.util.jar.*;
00044
00050 public class HeaderDictionary extends Dictionary implements Cloneable
00051 {
00052 private Hashtable headers;
00053
00057 public HeaderDictionary(Attributes in) {
00058 headers = new Hashtable();
00059 for (Iterator i = in.entrySet().iterator(); i.hasNext();) {
00060 Map.Entry e = (Map.Entry)i.next();
00061 headers.put(e.getKey(), e.getValue());
00062 }
00063 }
00064
00065
00069 public HeaderDictionary(Hashtable t) {
00070 headers = t;
00071 }
00072
00073
00077 public Enumeration elements() {
00078 return headers.elements();
00079 }
00080
00081
00085 public Object get(Object key) {
00086 return headers.get(new Attributes.Name((String)key));
00087 }
00088
00089
00093 public boolean isEmpty() {
00094 return headers.isEmpty();
00095 }
00096
00097
00101 public Enumeration keys() {
00102 final Enumeration keys = headers.keys();
00103 return new Enumeration() {
00104 public boolean hasMoreElements() {
00105 return keys.hasMoreElements();
00106 }
00107 public Object nextElement() {
00108 return keys.nextElement().toString();
00109 }
00110 };
00111 }
00112
00113
00117 public Object put(Object key, Object value) {
00118 return headers.put(new Attributes.Name((String)key), value);
00119 }
00120
00121
00125 public Object remove(Object key) {
00126 return headers.remove(new Attributes.Name((String)key));
00127 }
00128
00129
00133 public int size() {
00134 return headers.size();
00135 }
00136
00140 public Object clone() {
00141 return new HeaderDictionary((Hashtable)headers.clone());
00142 }
00143
00144
00145 public String toString() {
00146 return headers.toString();
00147 }
00148 }