1 21 package proguard.classfile.util; 22 23 import proguard.classfile.visitor.ClassVisitor; 24 import proguard.classfile.constant.visitor.ConstantVisitor; 25 import proguard.classfile.constant.ClassConstant; 26 import proguard.classfile.*; 27 28 34 public class ClassSubHierarchyInitializer 35 implements ClassVisitor 36 { 37 39 public void visitProgramClass(ProgramClass programClass) 40 { 41 addSubclass(programClass, programClass.getSuperClass()); 43 44 for (int index = 0; index < programClass.u2interfacesCount; index++) 46 { 47 addSubclass(programClass, programClass.getInterface(index)); 48 } 49 } 50 51 52 public void visitLibraryClass(LibraryClass libraryClass) 53 { 54 addSubclass(libraryClass, libraryClass.superClass); 56 57 Clazz[] interfaceClasses = libraryClass.interfaceClasses; 59 if (interfaceClasses != null) 60 { 61 for (int index = 0; index < interfaceClasses.length; index++) 62 { 63 addSubclass(libraryClass, interfaceClasses[index]); 65 } 66 } 67 } 68 69 70 72 private void addSubclass(Clazz subclass, Clazz clazz) 73 { 74 if (clazz != null) 75 { 76 clazz.addSubClass(subclass); 77 } 78 } 79 } 80 | Popular Tags |