|
||||||||||
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. |
LocalVariablesSorter | A MethodAdapter that renumbers local variables in their order of
appearance. |
Method | A named method descriptor. |
SerialVersionUIDAdder | A ClassAdapter that adds a serial version unique identifier to a
class if missing. |
StaticInitMerger | A ClassAdapter that merges clinit methods into a single one. |
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 |