edu.mit.ai.psg.jeva
Class AccessibilityMethods

java.lang.Object
  |
  +--edu.mit.ai.psg.jeva.AccessibilityMethods

public class AccessibilityMethods
extends Object

AccessibilityMethods --- methods for checking whether IllegalAccessException should be thrown. [JavaLangSpec1.0sec6.6]


Constructor Summary
AccessibilityMethods()
           
 
Method Summary
static boolean isAccessibleFromClass(IClass accessedMemberClass, IClass accessedType, IClass accessingClass)
          Check whether accessedMemberClass, an inner class or interface of accessedType, is accesible from accessingClass.
static boolean isAccessibleFromClass(IMember accessedMember, IClass accessedType, IClass accessingClass)
          Check whether accessedMember (field, method, constructor) of expression with type accessedType is accessible from class accessingClass.
static boolean isAccessibleFromPackage(IClass memberClass, String packageName)
          Check whether class is accessible from package, If nested, its enclosing class must also be accessible.
static boolean isAccessibleFromPackage(IMember member, String packageName)
          Check whether member (field, method, constructor) is accessible from package, i.e., an unrelated class in package packageName.
static boolean isPublicToTopLevel(IClass aClassOrInterface)
          return true if aClassOrInterface and and all its enclosing classes or interfaces are public
static boolean isPublicToTopLevel(IMember member)
          return true if member is public and its declaring class is public to top level (all enclosing classes or interfaces are public)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AccessibilityMethods

public AccessibilityMethods()
Method Detail

isPublicToTopLevel

public static boolean isPublicToTopLevel(IClass aClassOrInterface)
return true if aClassOrInterface and and all its enclosing classes or interfaces are public

isPublicToTopLevel

public static boolean isPublicToTopLevel(IMember member)
return true if member is public and its declaring class is public to top level (all enclosing classes or interfaces are public)

isAccessibleFromPackage

public static boolean isAccessibleFromPackage(IMember member,
                                              String packageName)
Check whether member (field, method, constructor) is accessible from package, i.e., an unrelated class in package packageName. Its declaring class must also be accessible.

isAccessibleFromPackage

public static boolean isAccessibleFromPackage(IClass memberClass,
                                              String packageName)
Check whether class is accessible from package, If nested, its enclosing class must also be accessible.

isAccessibleFromClass

public static boolean isAccessibleFromClass(IMember accessedMember,
                                            IClass accessedType,
                                            IClass accessingClass)
Check whether accessedMember (field, method, constructor) of expression with type accessedType is accessible from class accessingClass. Note that accessedMember may be inherited from a superclass or interface of accessedType. accessedType is used for checking protected access [JavaLangSpec1.0 sec6.6.2] (where accessedMember.getDeclaringClass() is C, accessingClass is S, and accessedType is Q).

isAccessibleFromClass

public static boolean isAccessibleFromClass(IClass accessedMemberClass,
                                            IClass accessedType,
                                            IClass accessingClass)
Check whether accessedMemberClass, an inner class or interface of accessedType, is accesible from accessingClass. Note that accessedMemberClass may be inherited from a superclass or interface of accessedType. accessedType is used for checking protected access [JavaLangSpec1.0 sec6.6.2] (where accessedMemberClass.getDeclaringClass() is C, accessingClass is S, and accessedType is Q).

Copyright (c) 1996-1999
Massachusetts Institute of Technology

Feedback: jeva-feedback@ai.mit.edu