1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.context.servlet;
20
21 import java.util.ArrayList;
22 import java.util.Enumeration;
23 import java.util.HashMap;
24 import java.util.List;
25 import java.util.Map;
26
27 import javax.servlet.http.HttpServletRequest;
28
29 import org.apache.myfaces.util.AbstractAttributeMap;
30
31
32
33
34
35
36
37
38 public class RequestHeaderValuesMap extends AbstractAttributeMap
39 {
40 private final HttpServletRequest _httpServletRequest;
41 private final Map _valueCache = new HashMap();
42
43 RequestHeaderValuesMap(HttpServletRequest httpServletRequest)
44 {
45 _httpServletRequest = httpServletRequest;
46 }
47
48 protected Object getAttribute(String key)
49 {
50 Object ret = _valueCache.get(key);
51 if (ret == null)
52 {
53 _valueCache.put(key, ret = toArray(_httpServletRequest
54 .getHeaders(key)));
55 }
56
57 return ret;
58 }
59
60 protected void setAttribute(String key, Object value)
61 {
62 throw new UnsupportedOperationException(
63 "Cannot set HttpServletRequest HeaderValues");
64 }
65
66 protected void removeAttribute(String key)
67 {
68 throw new UnsupportedOperationException(
69 "Cannot remove HttpServletRequest HeaderValues");
70 }
71
72 protected Enumeration getAttributeNames()
73 {
74 return _httpServletRequest.getHeaderNames();
75 }
76
77 private String[] toArray(Enumeration e)
78 {
79 List ret = new ArrayList();
80
81 while (e.hasMoreElements())
82 {
83 ret.add(e.nextElement());
84 }
85
86 return (String[]) ret.toArray(new String[ret.size()]);
87 }
88 }