1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.scripting.xmltags;
17
18 import java.lang.reflect.AccessibleObject;
19 import java.lang.reflect.Member;
20 import java.util.Map;
21
22 import ognl.MemberAccess;
23
24 import org.apache.ibatis.reflection.Reflector;
25
26
27
28
29
30
31
32
33
34
35
36
37
38 class OgnlMemberAccess implements MemberAccess {
39
40 private final boolean canControlMemberAccessible;
41
42 OgnlMemberAccess() {
43 this.canControlMemberAccessible = Reflector.canControlMemberAccessible();
44 }
45
46 @Override
47 public Object setup(Map context, Object target, Member member, String propertyName) {
48 Object result = null;
49 if (isAccessible(context, target, member, propertyName)) {
50 AccessibleObject accessible = (AccessibleObject) member;
51 if (!accessible.isAccessible()) {
52 result = Boolean.FALSE;
53 accessible.setAccessible(true);
54 }
55 }
56 return result;
57 }
58
59 @Override
60 public void restore(Map context, Object target, Member member, String propertyName, Object state) {
61
62 }
63
64 @Override
65 public boolean isAccessible(Map context, Object target, Member member, String propertyName) {
66 return canControlMemberAccessible;
67 }
68
69 }