1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.mina.integration.ognl;
18
19 import java.util.Map;
20 import java.util.TreeMap;
21
22 import ognl.OgnlContext;
23 import ognl.OgnlException;
24 import ognl.OgnlRuntime;
25 import ognl.PropertyAccessor;
26
27 import org.apache.mina.core.session.IoSession;
28
29
30
31
32
33
34
35 @SuppressWarnings("unchecked")
36 public class IoSessionPropertyAccessor extends AbstractPropertyAccessor {
37
38 @Override
39 protected Object getProperty0(OgnlContext context, Object target,
40 String name) throws OgnlException {
41 if (target instanceof IoSession && "attributes".equals(name)) {
42 Map<String, Object> attributes = new TreeMap<String, Object>();
43 IoSession s = (IoSession) target;
44 for (Object key: s.getAttributeKeys()) {
45 Object value = s.getAttribute(key);
46 if (value == null) {
47 continue;
48 }
49 attributes.put(String.valueOf(key), value);
50 }
51 return attributes;
52 }
53
54 return OgnlRuntime.NotFound;
55 }
56
57 @Override
58 protected boolean hasGetProperty0(OgnlContext context, Object target,
59 String name) throws OgnlException {
60 return target instanceof IoSession && "attributes".equals(name);
61 }
62
63 @Override
64 protected boolean hasSetProperty0(OgnlContext context, Object target,
65 String name) throws OgnlException {
66 return false;
67 }
68
69 @Override
70 protected Object setProperty0(OgnlContext context, Object target,
71 String name, Object value) throws OgnlException {
72 return OgnlRuntime.NotFound;
73 }
74 }