/** Returns true if the method m is visible from code in the class from. */ public boolean isVisible(SootClass from, SootMethod m) { from.checkLevel(SootClass.HIERARCHY); m.getDeclaringClass().checkLevel(SootClass.HIERARCHY); if (m.isPublic()) return true; if (m.isPrivate()) { return from.equals(m.getDeclaringClass()); } if (m.isProtected()) { return isClassSubclassOfIncluding(from, m.getDeclaringClass()); } // m is package return from.getJavaPackageName().equals(m.getDeclaringClass().getJavaPackageName()); // || isClassSubclassOfIncluding( from, m.getDeclaringClass() ); }