proguard.optimize.peephole
Class ClassMerger
java.lang.Object
proguard.classfile.util.SimplifiedVisitor
proguard.optimize.peephole.ClassMerger
- All Implemented Interfaces:
- ConstantVisitor, ClassVisitor
public class ClassMerger
- extends SimplifiedVisitor
- implements ClassVisitor, ConstantVisitor
This ClassVisitor inlines the classes that it visits in a given target class,
whenever possible.
- See Also:
RetargetedInnerClassAttributeRemover,
TargetClassChanger,
ClassReferenceFixer,
MemberReferenceFixer,
AccessFixer
|
Constructor Summary |
ClassMerger(ProgramClass targetClass,
boolean allowAccessModification,
boolean mergeInterfacesAggressively)
Creates a new ClassMerger that will merge classes into the given target
class. |
ClassMerger(ProgramClass targetClass,
boolean allowAccessModification,
boolean mergeInterfacesAggressively,
ClassVisitor extraClassVisitor)
Creates a new ClassMerger that will merge classes into the given target
class. |
| 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, visitClassConstant, visitClassElementValue, visitCodeAttribute, visitConstantElementValue, visitConstantInstruction, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDoubleConstant, visitDoubleType, visitEnclosingMethodAttribute, visitEnumConstantElementValue, visitExceptionsAttribute, visitFieldrefConstant, visitFloatConstant, visitFloatType, visitFullFrame, visitInnerClassesAttribute, visitIntegerConstant, visitIntegerType, visitInterfaceMethodrefConstant, visitLessZeroFrame, visitLibraryClass, 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 |
visitClassConstant, visitDoubleConstant, visitFieldrefConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitLongConstant, visitMethodrefConstant, visitNameAndTypeConstant, visitStringConstant, visitUtf8Constant |
ClassMerger
public ClassMerger(ProgramClass targetClass,
boolean allowAccessModification,
boolean mergeInterfacesAggressively)
- Creates a new ClassMerger that will merge classes into the given target
class.
- Parameters:
targetClass - the class into which all visited
classes will be merged.allowAccessModification - specifies whether the access modifiers
of classes can be changed in order to
merge them.mergeInterfacesAggressively - specifies whether interfaces may
be merged aggressively.
ClassMerger
public ClassMerger(ProgramClass targetClass,
boolean allowAccessModification,
boolean mergeInterfacesAggressively,
ClassVisitor extraClassVisitor)
- Creates a new ClassMerger that will merge classes into the given target
class.
- Parameters:
targetClass - the class into which all visited
classes will be merged.allowAccessModification - specifies whether the access modifiers
of classes can be changed in order to
merge them.mergeInterfacesAggressively - specifies whether interfaces may
be merged aggressively.extraClassVisitor - an optional extra visitor for all
merged classes.
visitProgramClass
public void visitProgramClass(ProgramClass programClass)
- Specified by:
visitProgramClass in interface ClassVisitor- Overrides:
visitProgramClass in class SimplifiedVisitor
visitProgramClass0
public void visitProgramClass0(ProgramClass programClass)
setTargetClass
public static void setTargetClass(Clazz clazz,
Clazz targetClass)
getTargetClass
public static Clazz getTargetClass(Clazz clazz)