Interface MemberInfo

    • 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 member
      ClassInfo 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.