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