public class ClassReferenceFixer extends java.lang.Object implements ClassVisitor, ConstantVisitor, MemberVisitor, AttributeVisitor, RecordComponentInfoVisitor, InnerClassesInfoVisitor, LocalVariableInfoVisitor, LocalVariableTypeInfoVisitor, AnnotationVisitor, ElementValueVisitor
ClassVisitor fixes references of constant pool entries, fields,
methods, attributes and kotlin metadata to classes whose names have
changed. Descriptors of member references are not updated yet.MemberReferenceFixer| Constructor and Description |
|---|
ClassReferenceFixer(boolean ensureUniqueMemberNames)
Creates a new ClassReferenceFixer.
|
| Modifier and Type | Method and Description |
|---|---|
static java.lang.String |
newDescriptor(java.lang.String descriptor,
Clazz[] referencedClasses)
Returns the new descriptor of a method after applying the obfuscation,
given the old descriptor and the referenced classes.
|
static java.lang.String |
shortKotlinNestedClassName(java.lang.String enclosingClassName,
java.lang.String shortInnerClassName,
Clazz referencedClass)
Returns the short classname to be used as the nested classname.
|
void |
visitAnnotation(Clazz clazz,
Annotation annotation)
Visits any Annotation instance.
|
void |
visitAnnotationDefaultAttribute(Clazz clazz,
Method method,
AnnotationDefaultAttribute annotationDefaultAttribute) |
void |
visitAnnotationElementValue(Clazz clazz,
Annotation annotation,
AnnotationElementValue annotationElementValue) |
void |
visitAnyAnnotationsAttribute(Clazz clazz,
AnnotationsAttribute annotationsAttribute)
Visits any AnnotationsAttribute instance.
|
void |
visitAnyAttribute(Clazz clazz,
Attribute attribute)
Visits any Attribute instance.
|
void |
visitAnyClass(Clazz clazz)
Visits any Clazz instance.
|
void |
visitAnyConstant(Clazz clazz,
Constant constant)
Visits any Constant instance.
|
void |
visitAnyParameterAnnotationsAttribute(Clazz clazz,
Method method,
ParameterAnnotationsAttribute parameterAnnotationsAttribute)
Visits any ParameterAnnotationsAttribute instance.
|
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 |
visitDynamicConstant(Clazz clazz,
DynamicConstant dynamicConstant) |
void |
visitEnumConstantElementValue(Clazz clazz,
Annotation annotation,
EnumConstantElementValue enumConstantElementValue) |
void |
visitInnerClassesAttribute(Clazz clazz,
InnerClassesAttribute innerClassesAttribute) |
void |
visitInnerClassesInfo(Clazz clazz,
InnerClassesInfo innerClassesInfo) |
void |
visitInvokeDynamicConstant(Clazz clazz,
InvokeDynamicConstant invokeDynamicConstant) |
void |
visitLibraryClass(LibraryClass libraryClass) |
void |
visitLibraryField(LibraryClass libraryClass,
LibraryField libraryField) |
void |
visitLibraryMethod(LibraryClass libraryClass,
LibraryMethod libraryMethod) |
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 |
visitMethodTypeConstant(Clazz clazz,
MethodTypeConstant methodTypeConstant) |
void |
visitProgramClass(ProgramClass programClass) |
void |
visitProgramField(ProgramClass programClass,
ProgramField programField) |
void |
visitProgramMethod(ProgramClass programClass,
ProgramMethod programMethod) |
void |
visitRecordAttribute(Clazz clazz,
RecordAttribute recordAttribute) |
void |
visitRecordComponentInfo(Clazz clazz,
RecordComponentInfo recordComponentInfo) |
void |
visitSignatureAttribute(Clazz clazz,
SignatureAttribute signatureAttribute) |
void |
visitStringConstant(Clazz clazz,
StringConstant stringConstant) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitAnyMethodrefConstant, visitAnyRefConstant, visitDoubleConstant, visitFieldrefConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitLongConstant, visitMethodHandleConstant, visitMethodrefConstant, visitModuleConstant, visitNameAndTypeConstant, visitPackageConstant, visitPrimitiveArrayConstant, visitUtf8ConstantvisitAnyMember, visitLibraryMember, visitProgramMembervisitAnyTypeAnnotationsAttribute, visitBootstrapMethodsAttribute, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitEnclosingMethodAttribute, visitExceptionsAttribute, visitLineNumberTableAttribute, visitMethodParametersAttribute, visitModuleAttribute, visitModuleMainClassAttribute, visitModulePackagesAttribute, visitNestHostAttribute, visitNestMembersAttribute, visitPermittedSubclassesAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSourceDebugExtensionAttribute, visitSourceDirAttribute, visitSourceFileAttribute, visitStackMapAttribute, visitStackMapTableAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitUnknownAttributevisitAnnotation, visitAnnotation, visitAnnotation, visitAnnotation, visitAnnotationvisitAnyElementValuepublic ClassReferenceFixer(boolean ensureUniqueMemberNames)
ensureUniqueMemberNames - specifies whether class members whose
descriptor changes should get new, unique
names, in order to avoid naming conflicts
with similar methods.public void visitAnyClass(Clazz clazz)
ClassVisitorvisitAnyClass in interface ClassVisitorpublic void visitProgramClass(ProgramClass programClass)
visitProgramClass in interface ClassVisitorpublic void visitLibraryClass(LibraryClass libraryClass)
visitLibraryClass in interface ClassVisitorpublic void visitProgramField(ProgramClass programClass, ProgramField programField)
visitProgramField in interface MemberVisitorpublic void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod)
visitProgramMethod in interface MemberVisitorpublic void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField)
visitLibraryField in interface MemberVisitorpublic void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod)
visitLibraryMethod in interface MemberVisitorpublic void visitAnyConstant(Clazz clazz, Constant constant)
ConstantVisitorvisitAnyConstant in interface ConstantVisitorpublic void visitStringConstant(Clazz clazz, StringConstant stringConstant)
visitStringConstant in interface ConstantVisitorpublic void visitDynamicConstant(Clazz clazz, DynamicConstant dynamicConstant)
visitDynamicConstant in interface ConstantVisitorpublic void visitInvokeDynamicConstant(Clazz clazz, InvokeDynamicConstant invokeDynamicConstant)
visitInvokeDynamicConstant in interface ConstantVisitorpublic void visitClassConstant(Clazz clazz, ClassConstant classConstant)
visitClassConstant in interface ConstantVisitorpublic void visitMethodTypeConstant(Clazz clazz, MethodTypeConstant methodTypeConstant)
visitMethodTypeConstant in interface ConstantVisitorpublic void visitAnyAttribute(Clazz clazz, Attribute attribute)
AttributeVisitorvisitAnyAttribute in interface AttributeVisitorpublic void visitRecordAttribute(Clazz clazz, RecordAttribute recordAttribute)
visitRecordAttribute in interface AttributeVisitorpublic void visitInnerClassesAttribute(Clazz clazz, InnerClassesAttribute innerClassesAttribute)
visitInnerClassesAttribute in interface AttributeVisitorpublic void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
visitCodeAttribute in interface AttributeVisitorpublic void visitLocalVariableTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTableAttribute localVariableTableAttribute)
visitLocalVariableTableAttribute in interface AttributeVisitorpublic void visitLocalVariableTypeTableAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeTableAttribute localVariableTypeTableAttribute)
visitLocalVariableTypeTableAttribute in interface AttributeVisitorpublic void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute)
visitSignatureAttribute in interface AttributeVisitorpublic void visitAnyAnnotationsAttribute(Clazz clazz, AnnotationsAttribute annotationsAttribute)
AttributeVisitorvisitAnyAnnotationsAttribute in interface AttributeVisitorpublic void visitAnyParameterAnnotationsAttribute(Clazz clazz, Method method, ParameterAnnotationsAttribute parameterAnnotationsAttribute)
AttributeVisitorvisitAnyParameterAnnotationsAttribute in interface AttributeVisitorpublic void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)
visitAnnotationDefaultAttribute in interface AttributeVisitorpublic void visitRecordComponentInfo(Clazz clazz, RecordComponentInfo recordComponentInfo)
visitRecordComponentInfo in interface RecordComponentInfoVisitorpublic void visitInnerClassesInfo(Clazz clazz, InnerClassesInfo innerClassesInfo)
visitInnerClassesInfo in interface InnerClassesInfoVisitorpublic void visitLocalVariableInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableInfo localVariableInfo)
visitLocalVariableInfo in interface LocalVariableInfoVisitorpublic void visitLocalVariableTypeInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableTypeInfo localVariableTypeInfo)
visitLocalVariableTypeInfo in interface LocalVariableTypeInfoVisitorpublic void visitAnnotation(Clazz clazz, Annotation annotation)
AnnotationVisitorvisitAnnotation in interface AnnotationVisitorpublic void visitConstantElementValue(Clazz clazz, Annotation annotation, ConstantElementValue constantElementValue)
visitConstantElementValue in interface ElementValueVisitorpublic void visitEnumConstantElementValue(Clazz clazz, Annotation annotation, EnumConstantElementValue enumConstantElementValue)
visitEnumConstantElementValue in interface ElementValueVisitorpublic void visitClassElementValue(Clazz clazz, Annotation annotation, ClassElementValue classElementValue)
visitClassElementValue in interface ElementValueVisitorpublic void visitAnnotationElementValue(Clazz clazz, Annotation annotation, AnnotationElementValue annotationElementValue)
visitAnnotationElementValue in interface ElementValueVisitorpublic void visitArrayElementValue(Clazz clazz, Annotation annotation, ArrayElementValue arrayElementValue)
visitArrayElementValue in interface ElementValueVisitorpublic static java.lang.String shortKotlinNestedClassName(java.lang.String enclosingClassName,
java.lang.String shortInnerClassName,
Clazz referencedClass)
public static java.lang.String newDescriptor(java.lang.String descriptor,
Clazz[] referencedClasses)