Package org.objectweb.asm.commons
Provides some useful class and method adapters. The preferred way of using
these adapters is by chaining them together and to custom adapters (instead of
inheriting from them). Indeed this approach provides more combination
possibilities than inheritance. For instance, suppose you want to implement an
adapter MyAdapter than needs sorted local variables and intermediate stack map
frame values taking into account the local variables sort. By using inheritance,
this would require MyAdapter to extend AnalyzerAdapter, itself extending
LocalVariablesSorter. But AnalyzerAdapter is not a subclass of
LocalVariablesSorter, so this is not possible. On the contrary, by using
delegation, you can make LocalVariablesSorter delegate to AnalyzerAdapter,
itself delegating to MyAdapter. In this case AnalyzerAdapter computes
intermediate frames based on the output of LocalVariablesSorter, and MyAdapter
can add new locals by calling the newLocal method on LocalVariablesSorter, and
can get the stack map frame state before each instruction by reading the locals
and stack fields in AnalyzerAdapter (this requires references from MyAdapter
back to LocalVariablesSorter and AnalyzerAdapter).
-
Interface Summary Interface Description TableSwitchGenerator A code generator for switch statements. -
Class Summary Class Description AdviceAdapter AMethodVisitorto insert before, after and around advices in methods and constructors.AnalyzerAdapter AMethodVisitorthat keeps track of stack map frame changes betweenAnalyzerAdapter.visitFrame(int, int, Object[], int, Object[])calls.AnnotationRemapper AnAnnotationVisitorthat remaps types with aRemapper.ClassRemapper AClassVisitorthat remaps types with aRemapper.CodeSizeEvaluator AMethodVisitorthat approximates the size of the methods it visits.FieldRemapper AFieldVisitorthat remaps types with aRemapper.GeneratorAdapter AMethodVisitorwith convenient methods to generate code.InstructionAdapter AMethodVisitorproviding a more detailed API to generate and transform instructions.JSRInlinerAdapter AMethodVisitorthat removes JSR instructions and inlines the referenced subroutines.LocalVariablesSorter AMethodVisitorthat renumbers local variables in their order of appearance.Method A named method descriptor.MethodRemapper AMethodVisitorthat remaps types with aRemapper.ModuleHashesAttribute A ModuleHashes attribute.ModuleRemapper AModuleVisitorthat remaps types with aRemapper.ModuleResolutionAttribute A ModuleResolution attribute.ModuleTargetAttribute A ModuleTarget attribute.RecordComponentRemapper ARecordComponentVisitorthat remaps types with aRemapper.Remapper A class responsible for remapping types and names.SerialVersionUIDAdder AClassVisitorthat adds a serial version unique identifier to a class if missing.SignatureRemapper ASignatureVisitorthat remaps types with aRemapper.SimpleRemapper StaticInitMerger AClassVisitorthat merges <clinit> methods into a single one.TryCatchBlockSorter AMethodVisitoradapter to sort the exception handlers.