I want to give a class a chain of modifications.
pw = new PrintWriter(System.out);
ClassWriter cw = new ClassWriter(0);
TraceClassVisitor tcv = new TraceClassVisitor(cw, pw);
ClassVisitor cv = new AddFieldAdapter(tcv, ACC_PUBLIC, "tt", "I");
cr.accept(cv, 0);
The way of chaining is simple: just wrap the visitors, the implicit delegation will automatically chain the effect of the visitors.
TraceClassVisitor is commonly used between the final mofifying visitor and the writer visitor, so that we can know what is the final look of the class.
As illustrated by the output of the TraceClassVisitor, I confirm that I successfully add the field "tt".
Similarly, you can print the class using classprinter from the ASM guide. Note, it does not support chaining as it cuts off all the delegation.
// ClassPrinter cp = new ClassPrinter();
// cr.accept(cp,0);