proguard.classfile.util
Class ClassSuperHierarchyInitializer

java.lang.Object
  extended by proguard.classfile.util.SimplifiedVisitor
      extended by proguard.classfile.util.ClassSuperHierarchyInitializer
All Implemented Interfaces:
ConstantVisitor, ClassVisitor

public class ClassSuperHierarchyInitializer
extends SimplifiedVisitor
implements ClassVisitor, ConstantVisitor

This ClassVisitor initializes the superclass hierarchy of all classes that it visits.

Visited library classes 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 superclasses can't be found or if they are in the program class pool.


Constructor Summary
ClassSuperHierarchyInitializer(ClassPool programClassPool, ClassPool libraryClassPool, WarningPrinter missingWarningPrinter, WarningPrinter dependencyWarningPrinter)
          Creates a new ClassSuperHierarchyInitializer that initializes the super hierarchy of all visited class files, optionally printing warnings if some classes can't be found or if they are in the program class pool.
 
Method Summary
 void visitClassConstant(Clazz clazz, ClassConstant classConstant)
           
 void visitLibraryClass(LibraryClass libraryClass)
           
 void visitProgramClass(ProgramClass programClass)
           
 
Methods inherited from class proguard.classfile.util.SimplifiedVisitor
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationDefaultAttribute, visitAnnotationElementValue, visitAnyAnnotationsAttribute, visitAnyAttribute, visitAnyClass, visitAnyConstant, visitAnyElementValue, visitAnyInstruction, visitAnyMember, visitAnyMethodrefConstant, visitAnyParameterAnnotationsAttribute, visitAnyRefConstant, visitAnyStackMapFrame, visitAnySwitchInstruction, visitAnyVerificationType, visitArrayElementValue, visitBranchInstruction, visitClassElementValue, visitCodeAttribute, visitConstantElementValue, visitConstantInstruction, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleConstant, visitDoubleType, visitEnclosingMethodAttribute, visitEnumConstantElementValue, visitExceptionsAttribute, visitFieldrefConstant, visitFloatConstant, visitFloatType, visitFullFrame, visitInnerClassesAttribute, visitIntegerConstant, visitIntegerType, visitInterfaceMethodrefConstant, visitLessZeroFrame, visitLibraryField, visitLibraryMember, visitLibraryMethod, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitLongConstant, visitLongType, visitLookUpSwitchInstruction, visitMethodrefConstant, visitMoreZeroFrame, visitNameAndTypeConstant, visitNullType, visitObjectType, visitProgramField, visitProgramMember, visitProgramMethod, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitSameOneFrame, visitSameZeroFrame, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSimpleInstruction, visitSourceDirAttribute, visitSourceFileAttribute, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackMapAttribute, visitStackMapTableAttribute, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitStringConstant, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitTableSwitchInstruction, visitTopType, visitUninitializedThisType, visitUninitializedType, visitUnknownAttribute, visitUtf8Constant, visitVariableInstruction, visitVariablesDoubleType, visitVariablesFloatType, visitVariablesIntegerType, visitVariablesLongType, visitVariablesNullType, visitVariablesObjectType, visitVariablesTopType, visitVariablesUninitializedThisType, visitVariablesUninitializedType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface proguard.classfile.constant.visitor.ConstantVisitor
visitDoubleConstant, visitFieldrefConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitLongConstant, visitMethodrefConstant, visitNameAndTypeConstant, visitStringConstant, visitUtf8Constant
 

Constructor Detail

ClassSuperHierarchyInitializer

public ClassSuperHierarchyInitializer(ClassPool programClassPool,
                                      ClassPool libraryClassPool,
                                      WarningPrinter missingWarningPrinter,
                                      WarningPrinter dependencyWarningPrinter)
Creates a new ClassSuperHierarchyInitializer that initializes the super hierarchy of all visited class files, optionally printing warnings if some classes can't be found or if they are in the program class pool.

Method Detail

visitProgramClass

public void visitProgramClass(ProgramClass programClass)
Specified by:
visitProgramClass in interface ClassVisitor
Overrides:
visitProgramClass in class SimplifiedVisitor

visitLibraryClass

public void visitLibraryClass(LibraryClass libraryClass)
Specified by:
visitLibraryClass in interface ClassVisitor
Overrides:
visitLibraryClass in class SimplifiedVisitor

visitClassConstant

public void visitClassConstant(Clazz clazz,
                               ClassConstant classConstant)
Specified by:
visitClassConstant in interface ConstantVisitor
Overrides:
visitClassConstant in class SimplifiedVisitor