proguard.obfuscate
Class Utf8UsageMarker

java.lang.Object
  extended by proguard.classfile.util.SimplifiedVisitor
      extended by proguard.obfuscate.Utf8UsageMarker
All Implemented Interfaces:
AnnotationVisitor, ElementValueVisitor, AttributeVisitor, InnerClassesInfoVisitor, LocalVariableInfoVisitor, LocalVariableTypeInfoVisitor, ConstantVisitor, ClassVisitor, MemberVisitor

public class Utf8UsageMarker
extends SimplifiedVisitor
implements ClassVisitor, MemberVisitor, ConstantVisitor, AttributeVisitor, InnerClassesInfoVisitor, LocalVariableInfoVisitor, LocalVariableTypeInfoVisitor, AnnotationVisitor, ElementValueVisitor

This ClassVisitor marks all UTF-8 constant pool entries that are being used in the program classes it visits.

See Also:
Utf8Shrinker

Constructor Summary
Utf8UsageMarker()
           
 
Method Summary
 void visitAnnotation(Clazz clazz, Annotation annotation)
           
 void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)
           
 void visitAnnotationElementValue(Clazz clazz, Annotation annotation, AnnotationElementValue annotationElementValue)
           
 void visitAnyAnnotationsAttribute(Clazz clazz, AnnotationsAttribute annotationsAttribute)
          Visits any type of AnnotationsAttribute of a class.
 void visitAnyConstant(Clazz clazz, Constant constant)
           
 void visitAnyParameterAnnotationsAttribute(Clazz clazz, Method method, ParameterAnnotationsAttribute parameterAnnotationsAttribute)
          Visits any type of ParameterAnnotationsAttribute.
 void visitArrayElementValue(Clazz clazz, Annotation annotation, ArrayElementValue arrayElementValue)
           
 void visitClassConstant(Clazz clazz, ClassConstant classConstant)
           
 void visitClassElementValue(Clazz clazz, Annotation annotation, ClassElementValue classElementValue)
           
 void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
           
 void visitConstantElementValue(Clazz clazz, Annotation annotation, ConstantElementValue constantElementValue)
           
 void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute)
           
 void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute)
           
 void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute)
           
 void visitEnumConstantElementValue(Clazz clazz, Annotation annotation, EnumConstantElementValue enumConstantElementValue)
           
 void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute)
           
 void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute)
           
 void visitInnerClassesInfo(Clazz clazz, InnerClassesInfo innerClassesInfo)
           
 void visitLineNumberTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LineNumberTableAttribute lineNumberTableAttribute)
           
 void visitLocalVariableInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableInfo localVariableInfo)
           
 void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute)
           
 void visitLocalVariableTypeInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeInfo localVariableTypeInfo)
           
 void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute)
           
 void visitNameAndTypeConstant(Clazz clazz, NameAndTypeConstant nameAndTypeConstant)
           
 void visitProgramClass(ProgramClass programClass)
           
 void visitProgramMember(ProgramClass programClass, ProgramMember programMember)
          Visits any type of class member of the given program class.
 void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute)
           
 void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute)
           
 void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute)
           
 void visitStackMapAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapAttribute stackMapAttribute)
           
 void visitStackMapTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, StackMapTableAttribute stackMapTableAttribute)
           
 void visitStringConstant(Clazz clazz, StringConstant stringConstant)
           
 void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute)
           
 void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute)
           
 
Methods inherited from class proguard.classfile.util.SimplifiedVisitor
visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnyAttribute, visitAnyClass, visitAnyElementValue, visitAnyInstruction, visitAnyMember, visitAnyMethodrefConstant, visitAnyRefConstant, visitAnyStackMapFrame, visitAnySwitchInstruction, visitAnyVerificationType, visitBranchInstruction, visitConstantInstruction, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleConstant, visitDoubleType, visitFieldrefConstant, visitFloatConstant, visitFloatType, visitFullFrame, visitIntegerConstant, visitIntegerType, visitInterfaceMethodrefConstant, visitLessZeroFrame, visitLibraryClass, visitLibraryField, visitLibraryMember, visitLibraryMethod, visitLongConstant, visitLongType, visitLookUpSwitchInstruction, visitMethodrefConstant, visitMoreZeroFrame, visitNullType, visitObjectType, visitProgramField, visitProgramMethod, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitSameOneFrame, visitSameZeroFrame, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSimpleInstruction, visitStackDoubleType, visitStackFloatType, visitStackIntegerType, visitStackLongType, visitStackNullType, visitStackObjectType, visitStackTopType, visitStackUninitializedThisType, visitStackUninitializedType, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitTableSwitchInstruction, visitTopType, visitUninitializedThisType, visitUninitializedType, 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.visitor.ClassVisitor
visitLibraryClass
 
Methods inherited from interface proguard.classfile.visitor.MemberVisitor
visitLibraryField, visitLibraryMethod, visitProgramField, visitProgramMethod
 
Methods inherited from interface proguard.classfile.constant.visitor.ConstantVisitor
visitDoubleConstant, visitFieldrefConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitLongConstant, visitMethodrefConstant, visitUtf8Constant
 
Methods inherited from interface proguard.classfile.attribute.visitor.AttributeVisitor
visitDeprecatedAttribute, visitDeprecatedAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSyntheticAttribute, visitSyntheticAttribute
 
Methods inherited from interface proguard.classfile.attribute.annotation.visitor.AnnotationVisitor
visitAnnotation, visitAnnotation, visitAnnotation
 

Constructor Detail

Utf8UsageMarker

public Utf8UsageMarker()
Method Detail

visitProgramClass

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

visitProgramMember

public void visitProgramMember(ProgramClass programClass,
                               ProgramMember programMember)
Description copied from class: SimplifiedVisitor
Visits any type of class member of the given program class.

Overrides:
visitProgramMember in class SimplifiedVisitor

visitAnyConstant

public void visitAnyConstant(Clazz clazz,
                             Constant constant)
Overrides:
visitAnyConstant in class SimplifiedVisitor

visitStringConstant

public void visitStringConstant(Clazz clazz,
                                StringConstant stringConstant)
Specified by:
visitStringConstant in interface ConstantVisitor
Overrides:
visitStringConstant in class SimplifiedVisitor

visitClassConstant

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

visitNameAndTypeConstant

public void visitNameAndTypeConstant(Clazz clazz,
                                     NameAndTypeConstant nameAndTypeConstant)
Specified by:
visitNameAndTypeConstant in interface ConstantVisitor
Overrides:
visitNameAndTypeConstant in class SimplifiedVisitor

visitUnknownAttribute

public void visitUnknownAttribute(Clazz clazz,
                                  UnknownAttribute unknownAttribute)
Specified by:
visitUnknownAttribute in interface AttributeVisitor
Overrides:
visitUnknownAttribute in class SimplifiedVisitor

visitSourceFileAttribute

public void visitSourceFileAttribute(Clazz clazz,
                                     SourceFileAttribute sourceFileAttribute)
Specified by:
visitSourceFileAttribute in interface AttributeVisitor
Overrides:
visitSourceFileAttribute in class SimplifiedVisitor

visitSourceDirAttribute

public void visitSourceDirAttribute(Clazz clazz,
                                    SourceDirAttribute sourceDirAttribute)
Specified by:
visitSourceDirAttribute in interface AttributeVisitor
Overrides:
visitSourceDirAttribute in class SimplifiedVisitor

visitInnerClassesAttribute

public void visitInnerClassesAttribute(Clazz clazz,
                                       InnerClassesAttribute innerClassesAttribute)
Specified by:
visitInnerClassesAttribute in interface AttributeVisitor
Overrides:
visitInnerClassesAttribute in class SimplifiedVisitor

visitEnclosingMethodAttribute

public void visitEnclosingMethodAttribute(Clazz clazz,
                                          EnclosingMethodAttribute enclosingMethodAttribute)
Specified by:
visitEnclosingMethodAttribute in interface AttributeVisitor
Overrides:
visitEnclosingMethodAttribute in class SimplifiedVisitor

visitDeprecatedAttribute

public void visitDeprecatedAttribute(Clazz clazz,
                                     DeprecatedAttribute deprecatedAttribute)
Specified by:
visitDeprecatedAttribute in interface AttributeVisitor
Overrides:
visitDeprecatedAttribute in class SimplifiedVisitor

visitSyntheticAttribute

public void visitSyntheticAttribute(Clazz clazz,
                                    SyntheticAttribute syntheticAttribute)
Specified by:
visitSyntheticAttribute in interface AttributeVisitor
Overrides:
visitSyntheticAttribute in class SimplifiedVisitor

visitSignatureAttribute

public void visitSignatureAttribute(Clazz clazz,
                                    SignatureAttribute signatureAttribute)
Specified by:
visitSignatureAttribute in interface AttributeVisitor
Overrides:
visitSignatureAttribute in class SimplifiedVisitor

visitConstantValueAttribute

public void visitConstantValueAttribute(Clazz clazz,
                                        Field field,
                                        ConstantValueAttribute constantValueAttribute)
Specified by:
visitConstantValueAttribute in interface AttributeVisitor
Overrides:
visitConstantValueAttribute in class SimplifiedVisitor

visitExceptionsAttribute

public void visitExceptionsAttribute(Clazz clazz,
                                     Method method,
                                     ExceptionsAttribute exceptionsAttribute)
Specified by:
visitExceptionsAttribute in interface AttributeVisitor
Overrides:
visitExceptionsAttribute in class SimplifiedVisitor

visitCodeAttribute

public void visitCodeAttribute(Clazz clazz,
                               Method method,
                               CodeAttribute codeAttribute)
Specified by:
visitCodeAttribute in interface AttributeVisitor
Overrides:
visitCodeAttribute in class SimplifiedVisitor

visitStackMapAttribute

public void visitStackMapAttribute(Clazz clazz,
                                   Method method,
                                   CodeAttribute codeAttribute,
                                   StackMapAttribute stackMapAttribute)
Specified by:
visitStackMapAttribute in interface AttributeVisitor
Overrides:
visitStackMapAttribute in class SimplifiedVisitor

visitStackMapTableAttribute

public void visitStackMapTableAttribute(Clazz clazz,
                                        Method method,
                                        CodeAttribute codeAttribute,
                                        StackMapTableAttribute stackMapTableAttribute)
Specified by:
visitStackMapTableAttribute in interface AttributeVisitor
Overrides:
visitStackMapTableAttribute in class SimplifiedVisitor

visitLineNumberTableAttribute

public void visitLineNumberTableAttribute(Clazz clazz,
                                          Method method,
                                          CodeAttribute codeAttribute,
                                          LineNumberTableAttribute lineNumberTableAttribute)
Specified by:
visitLineNumberTableAttribute in interface AttributeVisitor
Overrides:
visitLineNumberTableAttribute in class SimplifiedVisitor

visitLocalVariableTableAttribute

public void visitLocalVariableTableAttribute(Clazz clazz,
                                             Method method,
                                             CodeAttribute codeAttribute,
                                             LocalVariableTableAttribute localVariableTableAttribute)
Specified by:
visitLocalVariableTableAttribute in interface AttributeVisitor
Overrides:
visitLocalVariableTableAttribute in class SimplifiedVisitor

visitLocalVariableTypeTableAttribute

public void visitLocalVariableTypeTableAttribute(Clazz clazz,
                                                 Method method,
                                                 CodeAttribute codeAttribute,
                                                 LocalVariableTypeTableAttribute localVariableTypeTableAttribute)
Specified by:
visitLocalVariableTypeTableAttribute in interface AttributeVisitor
Overrides:
visitLocalVariableTypeTableAttribute in class SimplifiedVisitor

visitAnyAnnotationsAttribute

public void visitAnyAnnotationsAttribute(Clazz clazz,
                                         AnnotationsAttribute annotationsAttribute)
Description copied from class: SimplifiedVisitor
Visits any type of AnnotationsAttribute of a class.

Overrides:
visitAnyAnnotationsAttribute in class SimplifiedVisitor

visitAnyParameterAnnotationsAttribute

public void visitAnyParameterAnnotationsAttribute(Clazz clazz,
                                                  Method method,
                                                  ParameterAnnotationsAttribute parameterAnnotationsAttribute)
Description copied from class: SimplifiedVisitor
Visits any type of ParameterAnnotationsAttribute.

Overrides:
visitAnyParameterAnnotationsAttribute in class SimplifiedVisitor

visitAnnotationDefaultAttribute

public void visitAnnotationDefaultAttribute(Clazz clazz,
                                            Method method,
                                            AnnotationDefaultAttribute annotationDefaultAttribute)
Specified by:
visitAnnotationDefaultAttribute in interface AttributeVisitor
Overrides:
visitAnnotationDefaultAttribute in class SimplifiedVisitor

visitInnerClassesInfo

public void visitInnerClassesInfo(Clazz clazz,
                                  InnerClassesInfo innerClassesInfo)
Specified by:
visitInnerClassesInfo in interface InnerClassesInfoVisitor

visitLocalVariableInfo

public void visitLocalVariableInfo(Clazz clazz,
                                   Method method,
                                   CodeAttribute codeAttribute,
                                   LocalVariableInfo localVariableInfo)
Specified by:
visitLocalVariableInfo in interface LocalVariableInfoVisitor

visitLocalVariableTypeInfo

public void visitLocalVariableTypeInfo(Clazz clazz,
                                       Method method,
                                       CodeAttribute codeAttribute,
                                       LocalVariableTypeInfo localVariableTypeInfo)
Specified by:
visitLocalVariableTypeInfo in interface LocalVariableTypeInfoVisitor

visitAnnotation

public void visitAnnotation(Clazz clazz,
                            Annotation annotation)
Specified by:
visitAnnotation in interface AnnotationVisitor
Overrides:
visitAnnotation in class SimplifiedVisitor

visitConstantElementValue

public void visitConstantElementValue(Clazz clazz,
                                      Annotation annotation,
                                      ConstantElementValue constantElementValue)
Specified by:
visitConstantElementValue in interface ElementValueVisitor
Overrides:
visitConstantElementValue in class SimplifiedVisitor

visitEnumConstantElementValue

public void visitEnumConstantElementValue(Clazz clazz,
                                          Annotation annotation,
                                          EnumConstantElementValue enumConstantElementValue)
Specified by:
visitEnumConstantElementValue in interface ElementValueVisitor
Overrides:
visitEnumConstantElementValue in class SimplifiedVisitor

visitClassElementValue

public void visitClassElementValue(Clazz clazz,
                                   Annotation annotation,
                                   ClassElementValue classElementValue)
Specified by:
visitClassElementValue in interface ElementValueVisitor
Overrides:
visitClassElementValue in class SimplifiedVisitor

visitAnnotationElementValue

public void visitAnnotationElementValue(Clazz clazz,
                                        Annotation annotation,
                                        AnnotationElementValue annotationElementValue)
Specified by:
visitAnnotationElementValue in interface ElementValueVisitor
Overrides:
visitAnnotationElementValue in class SimplifiedVisitor

visitArrayElementValue

public void visitArrayElementValue(Clazz clazz,
                                   Annotation annotation,
                                   ArrayElementValue arrayElementValue)
Specified by:
visitArrayElementValue in interface ElementValueVisitor
Overrides:
visitArrayElementValue in class SimplifiedVisitor