@Override
 public void visitEnd() {
   for (Hook transplant : transplants) {
     String resourceName =
         "/"
             + transplantMapper.mapResourceName(
                 classFileFormatVersion, transplant.getClassSpec() + ".class");
     transplantMethod(resourceName, transplant, cv);
   }
 }
  protected static void insertMethod(final Hook methodToInsert, final MethodVisitor target) {
    byte[] classData = readStream("/" + methodToInsert.getClassSpec() + ".class");

    ClassReader reader = new ClassReader(classData);
    ClassVisitor methodFinder =
        new NoopClassVisitor() {
          @Override
          public MethodVisitor visitMethod(
              int access, String name, String desc, String signature, String[] exceptions) {
            if (name.equals(methodToInsert.getMethodName())
                && desc.equals(methodToInsert.getMethodDescriptor())) {
              return new InsertBodyOfMethodIntoAnotherVisitor(target);
            }
            return null;
          }
        };
    reader.accept(methodFinder, 0);
  }