/** * Finds the class member with the given name and descriptor in the given * class or its hierarchy. */ public Member findMember(Clazz referencingClass, Clazz clazz, String name, String descriptor, boolean isField) { // Organize a search in the hierarchy of superclasses and interfaces. // The class member may be in a different class, if the code was // compiled with "-target 1.2" or higher (the default in JDK 1.4). try { this.clazz = null; this.member = null; clazz.hierarchyAccept(true, true, true, false, isField ? (ClassVisitor)new NamedFieldVisitor(name, descriptor, new MemberClassAccessFilter(referencingClass, this)) : (ClassVisitor)new NamedMethodVisitor(name, descriptor, new MemberClassAccessFilter(referencingClass, this))); } catch (MemberFoundException ex) { // We've found the member we were looking for. } return member; }
public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) { if (accepted(libraryClass, libraryMethod.getAccessFlags())) { memberVisitor.visitLibraryMethod(libraryClass, libraryMethod); } }
public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) { if (accepted(libraryClass, libraryMethod.getAccessFlags())) { memberVisitor.visitLibraryMethod(libraryClass, libraryMethod); } }
private static class MemberFoundException extends RuntimeException {} private static final MemberFoundException MEMBER_FOUND = new MemberFoundException();
public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField) { if (accepted(libraryClass, libraryField.getAccessFlags())) { memberVisitor.visitLibraryField(libraryClass, libraryField); } }
private static class MemberFoundException extends RuntimeException {} private static final MemberFoundException MEMBER_FOUND = new MemberFoundException();
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { if (accepted(programClass, programMethod.getAccessFlags())) { memberVisitor.visitProgramMethod(programClass, programMethod); } }
private static class MemberFoundException extends RuntimeException {} private static final MemberFoundException MEMBER_FOUND = new MemberFoundException();
public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField) { if (accepted(libraryClass, libraryField.getAccessFlags())) { memberVisitor.visitLibraryField(libraryClass, libraryField); } }
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { if (accepted(programClass, programMethod.getAccessFlags())) { memberVisitor.visitProgramMethod(programClass, programMethod); } }
public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) { if (accepted(libraryClass, libraryMethod.getAccessFlags())) { memberVisitor.visitLibraryMethod(libraryClass, libraryMethod); } }
public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField) { if (accepted(libraryClass, libraryField.getAccessFlags())) { memberVisitor.visitLibraryField(libraryClass, libraryField); } }
public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) { if (accepted(libraryClass, libraryMethod.getAccessFlags())) { memberVisitor.visitLibraryMethod(libraryClass, libraryMethod); } }
public void visitProgramField(ProgramClass programClass, ProgramField programField) { if (accepted(programClass, programField.getAccessFlags())) { memberVisitor.visitProgramField(programClass, programField); } }
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { if (accepted(programClass, programMethod.getAccessFlags())) { memberVisitor.visitProgramMethod(programClass, programMethod); } }
public void visitProgramField(ProgramClass programClass, ProgramField programField) { if (accepted(programClass, programField.getAccessFlags())) { memberVisitor.visitProgramField(programClass, programField); } }
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { if (accepted(programClass, programMethod.getAccessFlags())) { memberVisitor.visitProgramMethod(programClass, programMethod); } }
public void visitProgramField(ProgramClass programClass, ProgramField programField) { if (accepted(programClass, programField.getAccessFlags())) { memberVisitor.visitProgramField(programClass, programField); } }
public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField) { if (accepted(libraryClass, libraryField.getAccessFlags())) { memberVisitor.visitLibraryField(libraryClass, libraryField); } }
public void visitProgramField(ProgramClass programClass, ProgramField programField) { if (accepted(programClass, programField.getAccessFlags())) { memberVisitor.visitProgramField(programClass, programField); } }