/** * 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 linkParent(ClassInfo classInfo) throws IOException { if (classInfo.superType == null) return; if (classInfo.superType.equals("java.lang.Object")) return; ClassInfo parentInfo = classInfo.superclassInfo; if (parentInfo == null) { parentInfo = classInfos.get(classInfo.superType); if (parentInfo == null) { if (classInfo.clazz != null) { readClassDef(((Class<?>) classInfo.clazz).getSuperclass()); } else { readClassDef(classInfo.superType); } parentInfo = classInfos.get(classInfo.superType); if (parentInfo == null) return; linkParent(parentInfo); } classInfo.superclassInfo = parentInfo; } if (!parentInfo.subclassInfos.contains(classInfo)) { parentInfo.subclassInfos.add(classInfo); } }
private void linkParent(ClassInfo classInfo) throws IOException { if (classInfo.superType == null) return; if (classInfo.superType.equals("java.lang.Object")) return; ClassInfo parentInfo = classInfo.superclassInfo; if (parentInfo == null) { parentInfo = classInfos.get(classInfo.superType); if (parentInfo == null) { if (classInfo.clazz != null) { readClassDef(((Class<?>) classInfo.clazz).getSuperclass()); } else { readClassDef(classInfo.superType); } parentInfo = classInfos.get(classInfo.superType); if (parentInfo == null) return; linkParent(parentInfo); } classInfo.superclassInfo = parentInfo; } if (!parentInfo.subclassInfos.contains(classInfo)) { parentInfo.subclassInfos.add(classInfo); } }
private void linkParent(ClassInfo classInfo) throws IOException { if (classInfo.superType == null) return; if (classInfo.superType.equals("java.lang.Object")) return; ClassInfo parentInfo = classInfo.superclassInfo; if (parentInfo == null) { parentInfo = classInfos.get(classInfo.superType); if (parentInfo == null) { if (classInfo.clazz != null) { readClassDef(((Class<?>) classInfo.clazz).getSuperclass()); } else { readClassDef(classInfo.superType); } parentInfo = classInfos.get(classInfo.superType); if (parentInfo == null) return; linkParent(parentInfo); } classInfo.superclassInfo = parentInfo; } if (!parentInfo.subclassInfos.contains(classInfo)) { parentInfo.subclassInfos.add(classInfo); } }