AJP/DiSLProject2022/src-profiler/ex8/InvokeType.java
2023-01-09 08:01:15 +01:00

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);
}
}