/[classpath]/classpath/gnu/java/net/protocol/http/Headers.java
ViewVC logotype

Diff of /classpath/gnu/java/net/protocol/http/Headers.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by mark, Sat Jul 2 20:32:13 2005 UTC revision 1.5 by daney, Wed Oct 12 19:48:25 2005 UTC
# Line 60  import java.util.Set; Line 60  import java.util.Set;
60   * @author Chris Burdess (dog@gnu.org)   * @author Chris Burdess (dog@gnu.org)
61   */   */
62  public class Headers  public class Headers
63    implements Map    extends LinkedHashMap
64  {  {
65    
66    static final DateFormat dateFormat = new HTTPDateFormat();    static final DateFormat dateFormat = new HTTPDateFormat();
# Line 143  public class Headers Line 143  public class Headers
143            
144    }    }
145    
   private LinkedHashMap headers;  
   
146    public Headers()    public Headers()
147    {    {
     headers = new LinkedHashMap();  
   }  
   
   public int size()  
   {  
     return headers.size();  
   }  
   
   public boolean isEmpty()  
   {  
     return headers.isEmpty();  
148    }    }
149    
150    public boolean containsKey(Object key)    public boolean containsKey(Object key)
151    {    {
152      return headers.containsKey(new Header((String) key));      return super.containsKey(new Header((String) key));
   }  
   
   public boolean containsValue(Object value)  
   {  
     return headers.containsValue(value);  
153    }    }
154    
155    public Object get(Object key)    public Object get(Object key)
156    {    {
157      return headers.get(new Header((String) key));      return super.get(new Header((String) key));
158    }    }
159    
160    /**    /**
# Line 180  public class Headers Line 162  public class Headers
162     */     */
163    public String getValue(String header)    public String getValue(String header)
164    {    {
165      return (String) headers.get(new Header(header));      return (String) super.get(new Header(header));
166    }    }
167    
168    /**    /**
# Line 205  public class Headers Line 187  public class Headers
187    }    }
188    
189    /**    /**
190       * Returns the value of the specified header as a long, or -1 if the
191       * header is not present or cannot be parsed as a long.
192       */
193      public long getLongValue(String header)
194      {
195        String val = getValue(header);
196        if (val == null)
197          {
198            return -1;
199          }
200        try
201          {
202            return Long.parseLong(val);
203          }
204        catch (NumberFormatException e)
205          {
206          }
207        return -1;
208      }
209    
210      /**
211     * Returns the value of the specified header as a date,     * Returns the value of the specified header as a date,
212     * or <code>null</code> if the header is not present or not a date.     * or <code>null</code> if the header is not present or not a date.
213     */     */
# Line 227  public class Headers Line 230  public class Headers
230    
231    public Object put(Object key, Object value)    public Object put(Object key, Object value)
232    {    {
233      return headers.put(new Header((String) key), value);      return super.put(new Header((String) key), value);
234    }    }
235    
236    public Object remove(Object key)    public Object remove(Object key)
237    {    {
238      return headers.remove(new Header((String) key));      return super.remove(new Header((String) key));
239    }    }
240    
241    public void putAll(Map t)    public void putAll(Map t)
# Line 241  public class Headers Line 244  public class Headers
244        {        {
245          String key = (String) i.next();          String key = (String) i.next();
246          String value = (String) t.get(key);          String value = (String) t.get(key);
247          headers.put(new Header(key), value);          put(key, value);
248        }        }
249    }    }
250        
   public void clear()  
   {  
     headers.clear();  
   }  
   
251    public Set keySet()    public Set keySet()
252    {    {
253      Set keys = headers.keySet();      Set keys = super.keySet();
254      Set ret = new LinkedHashSet();      Set ret = new LinkedHashSet();
255      for (Iterator i = keys.iterator(); i.hasNext(); )      for (Iterator i = keys.iterator(); i.hasNext(); )
256        {        {
# Line 261  public class Headers Line 259  public class Headers
259      return ret;      return ret;
260    }    }
261    
   public Collection values()  
   {  
     return headers.values();  
   }  
   
262    public Set entrySet()    public Set entrySet()
263    {    {
264      Set entries = headers.entrySet();      Set entries = super.entrySet();
265      Set ret = new LinkedHashSet();      Set ret = new LinkedHashSet();
266      for (Iterator i = entries.iterator(); i.hasNext(); )      for (Iterator i = entries.iterator(); i.hasNext(); )
267        {        {
# Line 278  public class Headers Line 271  public class Headers
271      return ret;      return ret;
272    }    }
273    
   public boolean equals(Object other)  
   {  
     return headers.equals(other);  
   }  
   
   public int hashCode()  
   {  
     return headers.hashCode();  
   }  
   
274    /**    /**
275     * Parse the specified input stream, adding headers to this collection.     * Parse the specified input stream, adding headers to this collection.
276     */     */
# Line 298  public class Headers Line 281  public class Headers
281        (LineInputStream) in : new LineInputStream(in);        (LineInputStream) in : new LineInputStream(in);
282            
283      String name = null;      String name = null;
284      StringBuffer value = new StringBuffer();      StringBuilder value = new StringBuilder();
285      while (true)      while (true)
286        {        {
287          String line = lin.readLine();          String line = lin.readLine();
# Line 354  public class Headers Line 337  public class Headers
337    private void addValue(String name, String value)    private void addValue(String name, String value)
338    {    {
339      Header key = new Header(name);      Header key = new Header(name);
340      String old = (String) headers.get(key);      String old = (String) super.get(key);
341      if (old == null)      if (old == null)
342        {        {
343          headers.put(key, value);          super.put(key, value);
344        }        }
345      else      else
346        {        {
347          headers.put(key, old + ", " + value);          super.put(key, old + ", " + value);
348        }        }
349    }    }
350        

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26