/** * The link() method must be called to successfully use the findSubclasses and findImplementations methods * @return * @throws IOException */ public AbstractFinder link() throws IOException { // already linked? if (originalInfos.size() > 0) return this; // keep track of what was originally from the archives originalInfos.putAll(classInfos); for (ClassInfo classInfo : classInfos.values().toArray(new ClassInfo[classInfos.size()])) { linkParent(classInfo); } for (ClassInfo classInfo : classInfos.values().toArray(new ClassInfo[classInfos.size()])) { linkInterfaces(classInfo); } return this; }
/** * The link() method must be called to successfully use the findSubclasses and findImplementations methods * @return * @throws IOException */ public AbstractFinder link() throws IOException { // already linked? if (originalInfos.size() > 0) return this; // keep track of what was originally from the archives originalInfos.putAll(classInfos); for (ClassInfo classInfo : classInfos.values().toArray(new ClassInfo[classInfos.size()])) { linkParent(classInfo); } for (ClassInfo classInfo : classInfos.values().toArray(new ClassInfo[classInfos.size()])) { linkInterfaces(classInfo); } return this; }
/** * The link() method must be called to successfully use the findSubclasses and findImplementations methods * @return * @throws IOException */ public AbstractFinder link() throws IOException { // already linked? if (originalInfos.size() > 0) return this; // keep track of what was originally from the archives originalInfos.putAll(classInfos); for (ClassInfo classInfo : classInfos.values().toArray(new ClassInfo[classInfos.size()])) { linkParent(classInfo); } for (ClassInfo classInfo : classInfos.values().toArray(new ClassInfo[classInfos.size()])) { linkInterfaces(classInfo); } return this; }
private void linkInterfaces(ClassInfo classInfo) throws IOException { final List<ClassInfo> infos = new ArrayList<ClassInfo>(); if (classInfo.clazz != null){ final Class<?>[] interfaces = classInfo.clazz.getInterfaces(); for (Class<?> clazz : interfaces) { ClassInfo interfaceInfo = classInfos.get(clazz.getName()); if (interfaceInfo == null){ readClassDef(clazz); } interfaceInfo = classInfos.get(clazz.getName()); if (interfaceInfo != null) { infos.add(interfaceInfo); } } } else { for (String className : classInfo.interfaces) { ClassInfo interfaceInfo = classInfos.get(className); if (interfaceInfo == null){ readClassDef(className); } interfaceInfo = classInfos.get(className); if (interfaceInfo != null) { infos.add(interfaceInfo); } } } for (ClassInfo info : infos) { linkInterfaces(info); } }
private void linkInterfaces(ClassInfo classInfo) throws IOException { final List<ClassInfo> infos = new ArrayList<ClassInfo>(); if (classInfo.clazz != null){ final Class<?>[] interfaces = classInfo.clazz.getInterfaces(); for (Class<?> clazz : interfaces) { ClassInfo interfaceInfo = classInfos.get(clazz.getName()); if (interfaceInfo == null){ readClassDef(clazz); } interfaceInfo = classInfos.get(clazz.getName()); if (interfaceInfo != null) { infos.add(interfaceInfo); } } } else { for (String className : classInfo.interfaces) { ClassInfo interfaceInfo = classInfos.get(className); if (interfaceInfo == null){ readClassDef(className); } interfaceInfo = classInfos.get(className); if (interfaceInfo != null) { infos.add(interfaceInfo); } } } for (ClassInfo info : infos) { linkInterfaces(info); } }
private void linkInterfaces(ClassInfo classInfo) throws IOException { final List<ClassInfo> infos = new ArrayList<ClassInfo>(); if (classInfo.clazz != null){ final Class<?>[] interfaces = classInfo.clazz.getInterfaces(); for (Class<?> clazz : interfaces) { ClassInfo interfaceInfo = classInfos.get(clazz.getName()); if (interfaceInfo == null){ readClassDef(clazz); } interfaceInfo = classInfos.get(clazz.getName()); if (interfaceInfo != null) { infos.add(interfaceInfo); } } } else { for (String className : classInfo.interfaces) { ClassInfo interfaceInfo = classInfos.get(className); if (interfaceInfo == null){ readClassDef(className); } interfaceInfo = classInfos.get(className); if (interfaceInfo != null) { infos.add(interfaceInfo); } } } for (ClassInfo info : infos) { linkInterfaces(info); } }