beginJavaFile import EDU.neu.ccs.demeter.*; class A implements Cloneable { protected B b1; void set_b1(B newb1) { b1 = newb1; } B get_b1() { return b1; } protected C c1; void set_c1(C newc1) { c1 = newc1; } C get_c1() { return c1; } protected D d1; void set_d1(D newd1) { d1 = newd1; } D get_d1() { return d1; } A(){ super(); } A(B newb1, C newc1, D newd1) { super(); set_b1(newb1); set_c1(newc1); set_d1(newd1); } int countG() { CountVisitor s = new CountVisitor(); traverse(s); return s.get_total(); } void print() { PrintVisitor p = new PrintVisitor(); traverse(p); } void display() { DisplayVisitor d = new DisplayVisitor(); traverse(d); } void trace() { TraceVisitor t = new TraceVisitor(); traverse(t); } void traverse(Visitor v) { v.before(this); v.before_b1(this, b1); b1.traverse(v); v.after_b1(this, b1); v.before_c1(this, c1); c1.traverse(v); v.after_c1(this, c1); v.before_d1(this, d1); d1.traverse(v); v.after_d1(this, d1); v.after(this); } } endJavaFile beginJavaFile import EDU.neu.ccs.demeter.*; class A implements Cloneable { protected B b1; void set_b1(B newb1) { b1 = newb1; } B get_b1() { return b1; } protected C c1; void set_c1(C newc1) { c1 = newc1; } C get_c1() { return c1; } protected D d1; void set_d1(D newd1) { d1 = newd1; } D get_d1() { return d1; } A(){ super(); } A(B newb1, C newc1, D newd1) { super(); set_b1(newb1); set_c1(newc1); set_d1(newd1); } int countG() { CountVisitor s = new CountVisitor(); traverse(s); return s.get_total(); } void print() { PrintVisitor p = new PrintVisitor(); traverse(p); } void display() { DisplayVisitor d = new DisplayVisitor(); traverse(d); } void trace() { TraceVisitor t = new TraceVisitor(); traverse(t); } void traverse(Visitor v) { v.before(this); v.before_b1(this, b1); b1.traverse(v); v.after_b1(this, b1); v.before_c1(this, c1); c1.traverse(v); v.after_c1(this, c1); v.before_d1(this, d1); d1.traverse(v); v.after_d1(this, d1); v.after(this); } } endJavaFile