34 lines
738 B
Java
34 lines
738 B
Java
package ex8;
|
|
|
|
import org.objectweb.asm.Opcodes;
|
|
|
|
import java.util.HashMap;
|
|
|
|
public enum InvokeType {
|
|
STATIC("static"),
|
|
DYNAMIC("dynamic"),
|
|
SPECIAL("special"),
|
|
VIRTUAL("virtual");
|
|
|
|
final String name;
|
|
|
|
final static HashMap<Integer, InvokeType> opcodeToInvokeType = new HashMap<>() {
|
|
{
|
|
put(Opcodes.INVOKESTATIC, InvokeType.STATIC);
|
|
put(Opcodes.INVOKEDYNAMIC, InvokeType.DYNAMIC);
|
|
put(Opcodes.INVOKESPECIAL, InvokeType.SPECIAL);
|
|
put(Opcodes.INVOKEVIRTUAL, InvokeType.VIRTUAL);
|
|
}
|
|
};
|
|
|
|
InvokeType(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
static InvokeType fromOpcode(int opCode) {
|
|
return opcodeToInvokeType.get(opCode);
|
|
}
|
|
|
|
|
|
}
|