Interface MemberInfo
- All Known Subinterfaces:
FieldInfo
,MethodInfo
,ModifiableFieldReference
,ModifiableMethod
- All Known Implementing Classes:
FieldGenerator
,FieldInfoImpl
,MemberInfoBase
,MethodGenerator
,MethodInfoBase
,MethodInfoReflectiveImpl
public interface MemberInfo
An interface that provides information common to all kinds of class
members. This includes data members (represented by FieldInfo) and
methods and constructors (represented by MethodInfo). This can be
used to describe both MethodGenerators that are used to generate code
and pre-existing Java classes.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
isAccessibleInContext
(ClassInfo definingClass, ClassInfo accessClass) Returns true iff this member is accessible in the context defined by definingClass (the class containing the reference to the member) and accessClass (the type of the expression used to access this member).int
Return the modifiers on this memberReturn the ClassInfo of the class that contains this member.name()
Return the name of this member.
-
Method Details
-
myClassInfo
ClassInfo myClassInfo()Return the ClassInfo of the class that contains this member. -
modifiers
int modifiers()Return the modifiers on this member -
name
String name()Return the name of this member. -
isAccessibleInContext
Returns true iff this member is accessible in the context defined by definingClass (the class containing the reference to the member) and accessClass (the type of the expression used to access this member). This works as follows:- If modifiers() contains PUBLIC, the access is permitted.
- If modifiers() contains PRIVATE, the access is permitted iff myClassInfo().name() is the same as definingClass.name().
- If modifiers() contains PROTECTED, the access is permitted as follows:
- If myClassInfo().pkgName() is the same as definingClass.pkgName(), the access is permitted.
- Otherwise, the access is permitted iff definingClass is a subclass of myClassInfo(), and accessClass is a subclass of definingClass.
- Otherwise, the access is permitted iff myClassInfo().pkgName is the same as definingClass.pkgName().
- Parameters:
definingClass
- the ClassInfo of the class in which the access occurs.accessClass
- the ClassInfo of the class used to access the member.
-