import EDU.neu.ccs.demeter.dj.*; import com.objectspace.jgl.*; import com.objectspace.jgl.algorithms.*; import java.util.*; // class graph //A = B C Vector(X) //X = Vector(Y) //Y = Vector(Z) //Z = Vector(Q) //Q = D class Main { public static void main(String[] args) { ClassGraph cg = new ClassGraph(); // constructed from *.java System.out.println(cg.version() + " = version"); MyVector Qs = new MyVector(); Qs.addElement(new D()); Qs.addElement(new D()); Qs.addElement(new D()); Qs.addElement(new D()); Qs.addElement(new D()); Z aZ1 = new Z(Qs); MyVector Zs = new MyVector(); Zs.addElement(aZ1); Zs.addElement(aZ1); Y aY1 = new Y(Zs); MyVector Ys = new MyVector(); Ys.addElement(aY1); Ys.addElement(aY1); // also add a D Ys.addElement(new D()); X aX1 = new X(Ys); MyVector Xs = new MyVector(); Xs.addElement(aX1); Xs.addElement(aX1); // also add a D Xs.addElement(new D()); A a = new A(new B(new D()), new C(), Xs); // cg.traverse(a, new StrategyGraph("A->D"), new MyVisitor()); Strategy sg = new Strategy("from A to D"); // Strategy sg = new Strategy("from A through Q to D"); TraversalGraph tg = TraversalGraph.compute(cg, sg); tg.traverse(a, new MyVisitor()); System.out.println("Traversal Graph for from A to D"); // System.out.println("Traversal Graph for from A through Q to D"); System.out.println(tg); InputIterator beginDs = tg.start(a); InputIterator endDs = tg.finish(a); Printing.println(beginDs, endDs); Enumeration e = tg.elements(a); while (e.hasMoreElements()) System.out.println(e.nextElement()); } }