org.objectweb.asm.commons
Class TryCatchBlockSorter

java.lang.Object
  extended by org.objectweb.asm.tree.MemberNode
      extended by org.objectweb.asm.tree.MethodNode
          extended by org.objectweb.asm.commons.TryCatchBlockSorter
All Implemented Interfaces:
MethodVisitor

public class TryCatchBlockSorter
extends MethodNode

Sorts the exception handlers in a method innermost-to-outermost. This allows the programmer to add handlers without worrying about ordering them correctly with respect to existing, in-code handlers. Behavior is only defined for properly-nested handlers. If any "try" blocks overlap (something that isn't possible in Java code) then this may not do what you want. In fact, this adapter just sorts by the length of the "try" block, taking advantage of the fact that a given try block must be larger than any block it contains).

Author:
Adrian Sampson

Field Summary
 
Fields inherited from class org.objectweb.asm.tree.MethodNode
access, annotationDefault, desc, exceptions, instructions, invisibleParameterAnnotations, localVariables, maxLocals, maxStack, name, signature, tryCatchBlocks, visibleParameterAnnotations
 
Fields inherited from class org.objectweb.asm.tree.MemberNode
attrs, invisibleAnnotations, visibleAnnotations
 
Constructor Summary
TryCatchBlockSorter(MethodVisitor mv, int access, String name, String desc, String signature, String[] exceptions)
           
 
Method Summary
 void visitEnd()
          Visits the end of this class, field or method.
 
Methods inherited from class org.objectweb.asm.tree.MethodNode
accept, accept, getLabelNode, visitAnnotationDefault, visitCode, visitFieldInsn, visitFrame, visitIincInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMultiANewArrayInsn, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn, visitVarInsn
 
Methods inherited from class org.objectweb.asm.tree.MemberNode
visitAnnotation, visitAttribute
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.asm.MethodVisitor
visitAnnotation, visitAttribute
 

Constructor Detail

TryCatchBlockSorter

public TryCatchBlockSorter(MethodVisitor mv,
                           int access,
                           String name,
                           String desc,
                           String signature,
                           String[] exceptions)
Method Detail

visitEnd

public void visitEnd()
Description copied from class: MemberNode
Visits the end of this class, field or method.

Specified by:
visitEnd in interface MethodVisitor
Overrides:
visitEnd in class MemberNode