|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
---|---|
TableSwitchGenerator | A code generator for switch statements. |
Class Summary | |
---|---|
AdviceAdapter | A MethodAdapter to insert before, after and around
advices in methods and constructors. |
AnalyzerAdapter | A MethodAdapter that keeps track of stack map frame changes between
visitFrame calls. |
CodeSizeEvaluator | A MethodAdapter that can be used to approximate method size. |
EmptyVisitor | An empty implementation of the ASM visitor interfaces. |
GeneratorAdapter | A MethodAdapter with convenient methods to generate
code. |
InstructionAdapter | |
JSRInlinerAdapter | A MethodAdapter that removes JSR instructions and
inlines the referenced subroutines. |
JSRInlinerAdapter.Subroutine | |
LocalVariablesSorter | A MethodAdapter that renumbers local variables in their order of
appearance. |
Method | A named method descriptor. |
Remapper | A class responsible for remapping types and names. |
RemappingAnnotationAdapter | An AnnotationVisitor adapter for type remapping. |
RemappingClassAdapter | A ClassAdapter for type remapping. |
RemappingFieldAdapter | A FieldVisitor adapter for type remapping. |
RemappingMethodAdapter | A MethodAdapter for type mapping. |
RemappingSignatureAdapter | A SignatureVisitor adapter for type mapping. |
SerialVersionUIDAdder | A ClassAdapter that adds a serial version unique identifier to a
class if missing. |
SimpleRemapper | |
StaticInitMerger | A ClassAdapter that merges clinit methods into a single one. |
TryCatchBlockSorter | Sorts the exception handlers in a method innermost-to-outermost. |
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).
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |