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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
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
modifiers()
Return the modifiers on this memberClassInfo
myClassInfo()
Return the ClassInfo of the class that contains this member.java.lang.String
name()
Return the name of this member.
-
-
-
Method Detail
-
myClassInfo
ClassInfo myClassInfo()
Return the ClassInfo of the class that contains this member.
-
modifiers
int modifiers()
Return the modifiers on this member
-
name
java.lang.String name()
Return the name of this member.
-
isAccessibleInContext
boolean 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). 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.
-
-