org.objectweb.asm.optimizer
Class MethodOptimizer

java.lang.Object
  extended by org.objectweb.asm.MethodAdapter
      extended by org.objectweb.asm.optimizer.MethodOptimizer
All Implemented Interfaces:
MethodVisitor

public class MethodOptimizer
extends MethodAdapter

A MethodAdapter that renames fields and methods, and removes debug info.

Author:
Eric Bruneton

Field Summary
private  NameMapping mapping
           
 
Fields inherited from class org.objectweb.asm.MethodAdapter
mv
 
Constructor Summary
MethodOptimizer(MethodVisitor mv, NameMapping mapping)
           
 
Method Summary
 AnnotationVisitor visitAnnotationDefault()
          Visits the default value of this annotation interface method.
 void visitFieldInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
          Visits a field instruction.
 void visitLineNumber(int line, Label start)
          Visits a line number declaration.
 void visitLocalVariable(java.lang.String name, java.lang.String desc, java.lang.String signature, Label start, Label end, int index)
          Visits a local variable declaration.
 void visitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
          Visits a method instruction.
 AnnotationVisitor visitParameterAnnotation(int parameter, java.lang.String desc, boolean visible)
          Visits an annotation of a parameter this method.
 void visitTypeInsn(int opcode, java.lang.String desc)
          Visits a type instruction.
 
Methods inherited from class org.objectweb.asm.MethodAdapter
visitAnnotation, visitAttribute, visitCode, visitEnd, visitIincInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLookupSwitchInsn, visitMaxs, visitMultiANewArrayInsn, visitTableSwitchInsn, visitTryCatchBlock, visitVarInsn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mapping

private NameMapping mapping
Constructor Detail

MethodOptimizer

public MethodOptimizer(MethodVisitor mv,
                       NameMapping mapping)
Method Detail

visitAnnotationDefault

public AnnotationVisitor visitAnnotationDefault()
Description copied from interface: MethodVisitor
Visits the default value of this annotation interface method.

Specified by:
visitAnnotationDefault in interface MethodVisitor
Overrides:
visitAnnotationDefault in class MethodAdapter
Returns:
a non null visitor to the visit the actual default value of this annotation interface method. The 'name' parameters passed to the methods of this annotation visitor are ignored. Moreover, exacly one visit method must be called on this annotation visitor, followed by visitEnd.

visitParameterAnnotation

public AnnotationVisitor visitParameterAnnotation(int parameter,
                                                  java.lang.String desc,
                                                  boolean visible)
Description copied from interface: MethodVisitor
Visits an annotation of a parameter this method.

Specified by:
visitParameterAnnotation in interface MethodVisitor
Overrides:
visitParameterAnnotation in class MethodAdapter
Parameters:
parameter - the parameter index.
desc - the class descriptor of the annotation class.
visible - true if the annotation is visible at runtime.
Returns:
a non null visitor to visit the annotation values.

visitTypeInsn

public void visitTypeInsn(int opcode,
                          java.lang.String desc)
Description copied from interface: MethodVisitor
Visits a type instruction. A type instruction is an instruction that takes a type descriptor as parameter.

Specified by:
visitTypeInsn in interface MethodVisitor
Overrides:
visitTypeInsn in class MethodAdapter
Parameters:
opcode - the opcode of the type instruction to be visited. This opcode is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.
desc - the operand of the instruction to be visited. This operand is must be a fully qualified class name in internal form, or the type descriptor of an array type (see Type).

visitFieldInsn

public void visitFieldInsn(int opcode,
                           java.lang.String owner,
                           java.lang.String name,
                           java.lang.String desc)
Description copied from interface: MethodVisitor
Visits a field instruction. A field instruction is an instruction that loads or stores the value of a field of an object.

Specified by:
visitFieldInsn in interface MethodVisitor
Overrides:
visitFieldInsn in class MethodAdapter
Parameters:
opcode - the opcode of the type instruction to be visited. This opcode is either GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD.
owner - the internal name of the field's owner class (see getInternalName).
name - the field's name.
desc - the field's descriptor (see Type).

visitMethodInsn

public void visitMethodInsn(int opcode,
                            java.lang.String owner,
                            java.lang.String name,
                            java.lang.String desc)
Description copied from interface: MethodVisitor
Visits a method instruction. A method instruction is an instruction that invokes a method.

Specified by:
visitMethodInsn in interface MethodVisitor
Overrides:
visitMethodInsn in class MethodAdapter
Parameters:
opcode - the opcode of the type instruction to be visited. This opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or INVOKEINTERFACE.
owner - the internal name of the method's owner class (see getInternalName).
name - the method's name.
desc - the method's descriptor (see Type).

visitLocalVariable

public void visitLocalVariable(java.lang.String name,
                               java.lang.String desc,
                               java.lang.String signature,
                               Label start,
                               Label end,
                               int index)
Description copied from interface: MethodVisitor
Visits a local variable declaration.

Specified by:
visitLocalVariable in interface MethodVisitor
Overrides:
visitLocalVariable in class MethodAdapter
Parameters:
name - the name of a local variable.
desc - the type descriptor of this local variable.
signature - the type signature of this local variable. May be null if the local variable type does not use generic types.
start - the first instruction corresponding to the scope of this local variable (inclusive).
end - the last instruction corresponding to the scope of this local variable (exclusive).
index - the local variable's index.

visitLineNumber

public void visitLineNumber(int line,
                            Label start)
Description copied from interface: MethodVisitor
Visits a line number declaration.

Specified by:
visitLineNumber in interface MethodVisitor
Overrides:
visitLineNumber in class MethodAdapter
Parameters:
line - a line number. This number refers to the source file from which the class was compiled.
start - the first instruction corresponding to this line number.