|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Interface Summary | |
---|---|
TableSwitchGenerator | A code generator for switch statements. |
Class Summary | |
---|---|
AdviceAdapter | A MethodVisitor to insert before, after and around
advices in methods and constructors. |
AnalyzerAdapter | A MethodVisitor that keeps track of stack map frame changes between
visitFrame calls. |
CodeSizeEvaluator | A MethodVisitor that can be used to approximate method size. |
GeneratorAdapter | A MethodVisitor with convenient methods to generate
code. |
InstructionAdapter | A MethodVisitor providing a more detailed API to generate and
transform instructions. |
JSRInlinerAdapter | A MethodVisitor that removes JSR instructions and
inlines the referenced subroutines. |
LocalVariablesSorter | A MethodVisitor 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 ClassVisitor for type remapping. |
RemappingFieldAdapter | A FieldVisitor adapter for type remapping. |
RemappingMethodAdapter | A LocalVariablesSorter for type mapping. |
RemappingSignatureAdapter | A SignatureVisitor adapter for type mapping. |
SerialVersionUIDAdder | A ClassVisitor that adds a serial version unique identifier to a
class if missing. |
SimpleRemapper | A Remapper using a Map to define its mapping. |
StaticInitMerger | A ClassVisitor that merges clinit methods into a single one. |
TryCatchBlockSorter | A MethodVisitor adapter to sort the exception handlers. |
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 |