ProGuard

proguard.obfuscate
Class NameAndTypeShrinker

java.lang.Object
  extended byproguard.obfuscate.NameAndTypeShrinker
All Implemented Interfaces:
AttrInfoVisitor, ClassFileVisitor, CpInfoVisitor, ExceptionInfoVisitor, InnerClassesInfoVisitor, InstructionVisitor, LocalVariableInfoVisitor, MemberInfoVisitor

public class NameAndTypeShrinker
extends Object
implements ClassFileVisitor, CpInfoVisitor, MemberInfoVisitor, AttrInfoVisitor, InstructionVisitor, InnerClassesInfoVisitor, ExceptionInfoVisitor, LocalVariableInfoVisitor

This ClassFileVisitor removes NameAndType constant pool entries that are not marked as being used.

See Also:
NameAndTypeUsageMarker

Constructor Summary
NameAndTypeShrinker()
           
 
Method Summary
 void visitBranchInstruction(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, int offset, BranchInstruction branchInstruction)
           
 void visitClassCpInfo(ClassFile classFile, ClassCpInfo classCpInfo)
           
 void visitCodeAttrInfo(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo)
           
 void visitConstantValueAttrInfo(ClassFile classFile, FieldInfo fieldInfo, ConstantValueAttrInfo constantValueAttrInfo)
           
 void visitCpInstruction(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, int offset, CpInstruction cpInstruction)
           
 void visitDeprecatedAttrInfo(ClassFile classFile, DeprecatedAttrInfo deprecatedAttrInfo)
           
 void visitDoubleCpInfo(ClassFile classFile, DoubleCpInfo doubleCpInfo)
           
 void visitExceptionInfo(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, ExceptionInfo exceptionInfo)
           
 void visitExceptionsAttrInfo(ClassFile classFile, MethodInfo methodInfo, ExceptionsAttrInfo exceptionsAttrInfo)
           
 void visitFieldrefCpInfo(ClassFile classFile, FieldrefCpInfo fieldrefCpInfo)
           
 void visitFloatCpInfo(ClassFile classFile, FloatCpInfo floatCpInfo)
           
 void visitInnerClassesAttrInfo(ClassFile classFile, InnerClassesAttrInfo innerClassesAttrInfo)
           
 void visitInnerClassesInfo(ClassFile classFile, InnerClassesInfo innerClassesInfo)
           
 void visitIntegerCpInfo(ClassFile classFile, IntegerCpInfo integerCpInfo)
           
 void visitInterfaceMethodrefCpInfo(ClassFile classFile, InterfaceMethodrefCpInfo interfaceMethodrefCpInfo)
           
 void visitLibraryClassFile(LibraryClassFile libraryClassFile)
           
 void visitLibraryFieldInfo(LibraryClassFile libraryClassFile, LibraryFieldInfo libraryFieldInfo)
           
 void visitLibraryMethodInfo(LibraryClassFile libraryClassFile, LibraryMethodInfo libraryMethodInfo)
           
 void visitLineNumberTableAttrInfo(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, LineNumberTableAttrInfo lineNumberTableAttrInfo)
           
 void visitLocalVariableInfo(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, LocalVariableInfo localVariableInfo)
           
 void visitLocalVariableTableAttrInfo(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, LocalVariableTableAttrInfo localVariableTableAttrInfo)
           
 void visitLongCpInfo(ClassFile classFile, LongCpInfo longCpInfo)
           
 void visitLookUpSwitchInstruction(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, int offset, LookUpSwitchInstruction lookUpSwitchInstruction)
           
 void visitMethodrefCpInfo(ClassFile classFile, MethodrefCpInfo methodrefCpInfo)
           
 void visitNameAndTypeCpInfo(ClassFile classFile, NameAndTypeCpInfo nameAndTypeCpInfo)
           
 void visitProgramClassFile(ProgramClassFile programClassFile)
           
 void visitProgramFieldInfo(ProgramClassFile programClassFile, ProgramFieldInfo programFieldInfo)
           
 void visitProgramMethodInfo(ProgramClassFile programClassFile, ProgramMethodInfo programMethodInfo)
           
 void visitSignatureAttrInfo(ClassFile classFile, SignatureAttrInfo signatureAttrInfo)
           
 void visitSimpleInstruction(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, int offset, SimpleInstruction simpleInstruction)
           
 void visitSourceDirAttrInfo(ClassFile classFile, SourceDirAttrInfo sourceDirAttrInfo)
           
 void visitSourceFileAttrInfo(ClassFile classFile, SourceFileAttrInfo sourceFileAttrInfo)
           
 void visitStringCpInfo(ClassFile classFile, StringCpInfo stringCpInfo)
           
 void visitSyntheticAttrInfo(ClassFile classFile, SyntheticAttrInfo syntheticAttrInfo)
           
 void visitTableSwitchInstruction(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, int offset, TableSwitchInstruction tableSwitchInstruction)
           
 void visitUnknownAttrInfo(ClassFile classFile, UnknownAttrInfo unknownAttrInfo)
           
 void visitUtf8CpInfo(ClassFile classFile, Utf8CpInfo utf8CpInfo)
           
 void visitVariableInstruction(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, int offset, VariableInstruction variableInstruction)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NameAndTypeShrinker

public NameAndTypeShrinker()
Method Detail

visitProgramClassFile

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

visitLibraryClassFile

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

visitClassCpInfo

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

visitDoubleCpInfo

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

visitFieldrefCpInfo

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

visitFloatCpInfo

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

visitIntegerCpInfo

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

visitInterfaceMethodrefCpInfo

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

visitLongCpInfo

public void visitLongCpInfo(ClassFile classFile,
                            LongCpInfo longCpInfo)
Specified by:
visitLongCpInfo 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

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

visitProgramFieldInfo

public void visitProgramFieldInfo(ProgramClassFile programClassFile,
                                  ProgramFieldInfo programFieldInfo)
Specified by:
visitProgramFieldInfo in interface MemberInfoVisitor

visitProgramMethodInfo

public void visitProgramMethodInfo(ProgramClassFile programClassFile,
                                   ProgramMethodInfo programMethodInfo)
Specified by:
visitProgramMethodInfo in interface MemberInfoVisitor

visitLibraryFieldInfo

public void visitLibraryFieldInfo(LibraryClassFile libraryClassFile,
                                  LibraryFieldInfo libraryFieldInfo)
Specified by:
visitLibraryFieldInfo in interface MemberInfoVisitor

visitLibraryMethodInfo

public void visitLibraryMethodInfo(LibraryClassFile libraryClassFile,
                                   LibraryMethodInfo libraryMethodInfo)
Specified by:
visitLibraryMethodInfo in interface MemberInfoVisitor

visitUnknownAttrInfo

public void visitUnknownAttrInfo(ClassFile classFile,
                                 UnknownAttrInfo unknownAttrInfo)
Specified by:
visitUnknownAttrInfo in interface AttrInfoVisitor

visitInnerClassesAttrInfo

public void visitInnerClassesAttrInfo(ClassFile classFile,
                                      InnerClassesAttrInfo innerClassesAttrInfo)
Specified by:
visitInnerClassesAttrInfo in interface AttrInfoVisitor

visitConstantValueAttrInfo

public void visitConstantValueAttrInfo(ClassFile classFile,
                                       FieldInfo fieldInfo,
                                       ConstantValueAttrInfo constantValueAttrInfo)
Specified by:
visitConstantValueAttrInfo in interface AttrInfoVisitor

visitExceptionsAttrInfo

public void visitExceptionsAttrInfo(ClassFile classFile,
                                    MethodInfo methodInfo,
                                    ExceptionsAttrInfo exceptionsAttrInfo)
Specified by:
visitExceptionsAttrInfo in interface AttrInfoVisitor

visitCodeAttrInfo

public void visitCodeAttrInfo(ClassFile classFile,
                              MethodInfo methodInfo,
                              CodeAttrInfo codeAttrInfo)
Specified by:
visitCodeAttrInfo in interface AttrInfoVisitor

visitLineNumberTableAttrInfo

public void visitLineNumberTableAttrInfo(ClassFile classFile,
                                         MethodInfo methodInfo,
                                         CodeAttrInfo codeAttrInfo,
                                         LineNumberTableAttrInfo lineNumberTableAttrInfo)
Specified by:
visitLineNumberTableAttrInfo in interface AttrInfoVisitor

visitLocalVariableTableAttrInfo

public void visitLocalVariableTableAttrInfo(ClassFile classFile,
                                            MethodInfo methodInfo,
                                            CodeAttrInfo codeAttrInfo,
                                            LocalVariableTableAttrInfo localVariableTableAttrInfo)
Specified by:
visitLocalVariableTableAttrInfo in interface AttrInfoVisitor

visitSourceFileAttrInfo

public void visitSourceFileAttrInfo(ClassFile classFile,
                                    SourceFileAttrInfo sourceFileAttrInfo)
Specified by:
visitSourceFileAttrInfo in interface AttrInfoVisitor

visitSourceDirAttrInfo

public void visitSourceDirAttrInfo(ClassFile classFile,
                                   SourceDirAttrInfo sourceDirAttrInfo)
Specified by:
visitSourceDirAttrInfo in interface AttrInfoVisitor

visitDeprecatedAttrInfo

public void visitDeprecatedAttrInfo(ClassFile classFile,
                                    DeprecatedAttrInfo deprecatedAttrInfo)
Specified by:
visitDeprecatedAttrInfo in interface AttrInfoVisitor

visitSyntheticAttrInfo

public void visitSyntheticAttrInfo(ClassFile classFile,
                                   SyntheticAttrInfo syntheticAttrInfo)
Specified by:
visitSyntheticAttrInfo in interface AttrInfoVisitor

visitSignatureAttrInfo

public void visitSignatureAttrInfo(ClassFile classFile,
                                   SignatureAttrInfo signatureAttrInfo)
Specified by:
visitSignatureAttrInfo in interface AttrInfoVisitor

visitSimpleInstruction

public void visitSimpleInstruction(ClassFile classFile,
                                   MethodInfo methodInfo,
                                   CodeAttrInfo codeAttrInfo,
                                   int offset,
                                   SimpleInstruction simpleInstruction)
Specified by:
visitSimpleInstruction in interface InstructionVisitor

visitVariableInstruction

public void visitVariableInstruction(ClassFile classFile,
                                     MethodInfo methodInfo,
                                     CodeAttrInfo codeAttrInfo,
                                     int offset,
                                     VariableInstruction variableInstruction)
Specified by:
visitVariableInstruction in interface InstructionVisitor

visitBranchInstruction

public void visitBranchInstruction(ClassFile classFile,
                                   MethodInfo methodInfo,
                                   CodeAttrInfo codeAttrInfo,
                                   int offset,
                                   BranchInstruction branchInstruction)
Specified by:
visitBranchInstruction in interface InstructionVisitor

visitTableSwitchInstruction

public void visitTableSwitchInstruction(ClassFile classFile,
                                        MethodInfo methodInfo,
                                        CodeAttrInfo codeAttrInfo,
                                        int offset,
                                        TableSwitchInstruction tableSwitchInstruction)
Specified by:
visitTableSwitchInstruction in interface InstructionVisitor

visitLookUpSwitchInstruction

public void visitLookUpSwitchInstruction(ClassFile classFile,
                                         MethodInfo methodInfo,
                                         CodeAttrInfo codeAttrInfo,
                                         int offset,
                                         LookUpSwitchInstruction lookUpSwitchInstruction)
Specified by:
visitLookUpSwitchInstruction in interface InstructionVisitor

visitCpInstruction

public void visitCpInstruction(ClassFile classFile,
                               MethodInfo methodInfo,
                               CodeAttrInfo codeAttrInfo,
                               int offset,
                               CpInstruction cpInstruction)
Specified by:
visitCpInstruction in interface InstructionVisitor

visitInnerClassesInfo

public void visitInnerClassesInfo(ClassFile classFile,
                                  InnerClassesInfo innerClassesInfo)
Specified by:
visitInnerClassesInfo in interface InnerClassesInfoVisitor

visitExceptionInfo

public void visitExceptionInfo(ClassFile classFile,
                               MethodInfo methodInfo,
                               CodeAttrInfo codeAttrInfo,
                               ExceptionInfo exceptionInfo)
Specified by:
visitExceptionInfo in interface ExceptionInfoVisitor

visitLocalVariableInfo

public void visitLocalVariableInfo(ClassFile classFile,
                                   MethodInfo methodInfo,
                                   CodeAttrInfo codeAttrInfo,
                                   LocalVariableInfo localVariableInfo)
Specified by:
visitLocalVariableInfo in interface LocalVariableInfoVisitor

ProGuard