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.Enumeration;
22 import java.util.Map;
23
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpSession;
26
27 import org.apache.myfaces.shared.util.NullEnumeration;
28 import org.apache.myfaces.util.AbstractThreadSafeAttributeMap;
29
30
31
32
33
34
35
36
37 public final class SessionMap extends AbstractThreadSafeAttributeMap<Object>
38 {
39 private final HttpServletRequest _httpRequest;
40
41 SessionMap(final HttpServletRequest httpRequest)
42 {
43 _httpRequest = httpRequest;
44 }
45
46 @Override
47 protected Object getAttribute(final String key)
48 {
49 final HttpSession httpSession = _getSession();
50 return (httpSession == null) ? null : httpSession.getAttribute(key);
51 }
52
53 @Override
54 protected void setAttribute(final String key, final Object value)
55 {
56 _httpRequest.getSession(true).setAttribute(key, value);
57 }
58
59 @Override
60 protected void removeAttribute(final String key)
61 {
62 final HttpSession httpSession = _getSession();
63 if (httpSession != null)
64 {
65 httpSession.removeAttribute(key);
66 }
67 }
68
69 @Override
70 @SuppressWarnings("unchecked")
71 protected Enumeration<String> getAttributeNames()
72 {
73 final HttpSession httpSession = _getSession();
74 return (httpSession == null) ? NullEnumeration.instance() : httpSession.getAttributeNames();
75 }
76
77 @Override
78 public void putAll(final Map<? extends String, ? extends Object> t)
79 {
80 throw new UnsupportedOperationException();
81 }
82
83
84
85 private HttpSession _getSession()
86 {
87 return _httpRequest.getSession(false);
88 }
89
90 }