MCPcopy Create free account
hub / github.com/OpenSourcePhysics/osp / verifyMemberAccess

Method verifyMemberAccess

unused/sun/reflect/Reflection.java:66–142  ·  view source on GitHub ↗
(Class currentClass,
                                               // Declaring class of field
                                               // or method
                                               Class  memberClass,
                                               // May be NULL in case of statics
                                               Object target,
                                               int    modifiers)

Source from the content-addressed store, hash-verified

64 }
65
66 public static boolean verifyMemberAccess(Class currentClass,
67 // Declaring class of field
68 // or method
69 Class memberClass,
70 // May be NULL in case of statics
71 Object target,
72 int modifiers)
73 {
74 // Verify that currentClass can access a field, method, or
75 // constructor of memberClass, where that member's access bits are
76 // "modifiers".
77
78 boolean gotIsSameClassPackage = false;
79 boolean isSameClassPackage = false;
80
81 if (currentClass == memberClass) {
82 // Always succeeds
83 return true;
84 }
85
86 if (!Modifier.isPublic(getClassAccessFlags(memberClass))) {
87 isSameClassPackage = isSameClassPackage(currentClass, memberClass);
88 gotIsSameClassPackage = true;
89 if (!isSameClassPackage) {
90 return false;
91 }
92 }
93
94 // At this point we know that currentClass can access memberClass.
95
96 if (Modifier.isPublic(modifiers)) {
97 return true;
98 }
99
100 boolean successSoFar = false;
101
102 if (Modifier.isProtected(modifiers)) {
103 // See if currentClass is a subclass of memberClass
104 if (isSubclassOf(currentClass, memberClass)) {
105 successSoFar = true;
106 }
107 }
108
109 if (!successSoFar && !Modifier.isPrivate(modifiers)) {
110 if (!gotIsSameClassPackage) {
111 isSameClassPackage = isSameClassPackage(currentClass,
112 memberClass);
113 gotIsSameClassPackage = true;
114 }
115
116 if (isSameClassPackage) {
117 successSoFar = true;
118 }
119 }
120
121 if (!successSoFar) {
122 return false;
123 }

Callers 1

ensureMemberAccessMethod · 0.95

Calls 4

getClassAccessFlagsMethod · 0.95
isSameClassPackageMethod · 0.95
isSubclassOfMethod · 0.95
getClassMethod · 0.45

Tested by

no test coverage detected