ProGuard

proguard.classfile.util
Class ClassFileHierarchyInitializer

java.lang.Object
  extended byproguard.classfile.util.ClassFileHierarchyInitializer
All Implemented Interfaces:
ClassFileVisitor, CpInfoVisitor

public class ClassFileHierarchyInitializer
extends Object
implements ClassFileVisitor, CpInfoVisitor

This ClassFileVisitor initializes the class hierarchy of all class files that it visits.

Visited class files are added to the subclass list of their superclasses and interfaces. These subclass lists make it more convenient to travel down the class hierarchy.

Visited library class files get direct references to their superclasses and interfaces, replacing the superclass names and interface names. The direct references are equivalent to the names, but they are more efficient to work with.

This visitor optionally prints warnings if some items can't be found.


Constructor Summary
ClassFileHierarchyInitializer(ClassPool programClassPool, ClassPool libraryClassPool)
          Creates a new ClassFileReferenceInitializer that initializes the hierarchy of all visited class files, printing warnings if some classes can't be found.
ClassFileHierarchyInitializer(ClassPool programClassPool, ClassPool libraryClassPool, boolean warn)
          Creates a new ClassFileReferenceInitializer that initializes the hierarchy of all visited class files, optionally printing warnings if some classes can't be found.
 
Method Summary
 int getWarningCount()
          Returns the number of warnings printed about unresolved references to superclasses or interfaces.
 void visitClassCpInfo(ClassFile classFile, ClassCpInfo classCpInfo)
           
 void visitDoubleCpInfo(ClassFile classFile, DoubleCpInfo doubleCpInfo)
           
 void visitFieldrefCpInfo(ClassFile classFile, FieldrefCpInfo fieldrefCpInfo)
           
 void visitFloatCpInfo(ClassFile classFile, FloatCpInfo floatCpInfo)
           
 void visitIntegerCpInfo(ClassFile classFile, IntegerCpInfo integerCpInfo)
           
 void visitInterfaceMethodrefCpInfo(ClassFile classFile, InterfaceMethodrefCpInfo interfaceMethodrefCpInfo)
           
 void visitLibraryClassFile(LibraryClassFile libraryClassFile)
           
 void visitLongCpInfo(ClassFile classFile, LongCpInfo longCpInfo)
           
 void visitMethodrefCpInfo(ClassFile classFile, MethodrefCpInfo methodrefCpInfo)
           
 void visitNameAndTypeCpInfo(ClassFile classFile, NameAndTypeCpInfo nameAndTypeCpInfo)
           
 void visitProgramClassFile(ProgramClassFile programClassFile)
           
 void visitStringCpInfo(ClassFile classFile, StringCpInfo stringCpInfo)
           
 void visitUtf8CpInfo(ClassFile classFile, Utf8CpInfo utf8CpInfo)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassFileHierarchyInitializer

public ClassFileHierarchyInitializer(ClassPool programClassPool,
                                     ClassPool libraryClassPool)
Creates a new ClassFileReferenceInitializer that initializes the hierarchy of all visited class files, printing warnings if some classes can't be found.


ClassFileHierarchyInitializer

public ClassFileHierarchyInitializer(ClassPool programClassPool,
                                     ClassPool libraryClassPool,
                                     boolean warn)
Creates a new ClassFileReferenceInitializer that initializes the hierarchy of all visited class files, optionally printing warnings if some classes can't be found.

Method Detail

getWarningCount

public int getWarningCount()
Returns the number of warnings printed about unresolved references to superclasses or interfaces.


visitProgramClassFile

public void visitProgramClassFile(ProgramClassFile programClassFile)
Specified by:
visitProgramClassFile in interface ClassFileVisitor

visitLibraryClassFile

public void visitLibraryClassFile(LibraryClassFile libraryClassFile)
Specified by:
visitLibraryClassFile in interface ClassFileVisitor

visitIntegerCpInfo

public void visitIntegerCpInfo(ClassFile classFile,
                               IntegerCpInfo integerCpInfo)
Specified by:
visitIntegerCpInfo in interface CpInfoVisitor

visitLongCpInfo

public void visitLongCpInfo(ClassFile classFile,
                            LongCpInfo longCpInfo)
Specified by:
visitLongCpInfo in interface CpInfoVisitor

visitFloatCpInfo

public void visitFloatCpInfo(ClassFile classFile,
                             FloatCpInfo floatCpInfo)
Specified by:
visitFloatCpInfo in interface CpInfoVisitor

visitDoubleCpInfo

public void visitDoubleCpInfo(ClassFile classFile,
                              DoubleCpInfo doubleCpInfo)
Specified by:
visitDoubleCpInfo in interface CpInfoVisitor

visitStringCpInfo

public void visitStringCpInfo(ClassFile classFile,
                              StringCpInfo stringCpInfo)
Specified by:
visitStringCpInfo in interface CpInfoVisitor

visitUtf8CpInfo

public void visitUtf8CpInfo(ClassFile classFile,
                            Utf8CpInfo utf8CpInfo)
Specified by:
visitUtf8CpInfo in interface CpInfoVisitor

visitFieldrefCpInfo

public void visitFieldrefCpInfo(ClassFile classFile,
                                FieldrefCpInfo fieldrefCpInfo)
Specified by:
visitFieldrefCpInfo in interface CpInfoVisitor

visitInterfaceMethodrefCpInfo

public void visitInterfaceMethodrefCpInfo(ClassFile classFile,
                                          InterfaceMethodrefCpInfo interfaceMethodrefCpInfo)
Specified by:
visitInterfaceMethodrefCpInfo in interface CpInfoVisitor

visitMethodrefCpInfo

public void visitMethodrefCpInfo(ClassFile classFile,
                                 MethodrefCpInfo methodrefCpInfo)
Specified by:
visitMethodrefCpInfo in interface CpInfoVisitor

visitNameAndTypeCpInfo

public void visitNameAndTypeCpInfo(ClassFile classFile,
                                   NameAndTypeCpInfo nameAndTypeCpInfo)
Specified by:
visitNameAndTypeCpInfo in interface CpInfoVisitor

visitClassCpInfo

public void visitClassCpInfo(ClassFile classFile,
                             ClassCpInfo classCpInfo)
Specified by:
visitClassCpInfo in interface CpInfoVisitor

ProGuard