code: byte[] transformCandidate(byte[] classfileBuffer) {
          // reader --> serial version uid adder --> process candidate hook adapter --> tracing --> writer
          ClassReader reader = new ClassReader(classfileBuffer);
          ClassWriter writer = new ClassWriter(reader, ClassWriter.COMPUTE_MAXS);
  
          ClassVisitor visitor = writer;
          StringWriter stringWriter = null;
          if (tc.isDumpEnabled()) {
              stringWriter = new StringWriter();
              visitor = new CheckClassAdapter(visitor);
              visitor = new TraceClassVisitor(visitor, new PrintWriter(stringWriter));
          }
          visitor = new ClassAvailableHookClassAdapter(visitor);
          visitor = new SerialVersionUIDAdder(visitor);
  
          // Process the class
          reader.accept(visitor, 0);
  
          if (stringWriter != null && tc.isDumpEnabled()) {
              Tr.dump(tc, "Transformed class", stringWriter);
          }
  
          return writer.toByteArray();
      }
docs: Inject the byte code required to call the {@code processCandidate} proxy
  after class initialization.
  
  @param classfileBuffer the source class file
  
  @return the modified class file