run.addInvokestatic(VirtualDelegator.class.getName(), "run", "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;");
ManipulationUtils.MethodReturnRewriter.addReturnProxyMethod(method.getDescriptor(), run);
Bytecode cd = new Bytecode(file.getConstPool());
cd.add(Opcode.ALOAD_0);
cd.addLdc(file.getName());
cd.addLdc(method.getName());
cd.addLdc(method.getDescriptor());
cd.addInvokestatic(VirtualDelegator.class.getName(), "contains", "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z");
cd.add(Opcode.IFEQ); // if contains is true
ManipulationUtils.add16bit(cd, run.getSize() + 3);