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