import edu.neu.ccs.demeter.dj.*; public class BusRoute { BusRoute(MyVector buses, MyVector villages) { this.buses = buses; this.villages = villages; } public MyVector buses; public MyVector villages; // why is this in BusRoute? // should be in Object // if class graph changes: rename visitor arguments public int count2(ObjectGraphSlice whereToCount){ MyVisitor countingVisitor = new MyVisitor(); Integer result = (Integer) whereToCount.traverse(countingVisitor); return result.intValue(); } public int count3(ObjectGraphSlice whereToCount){ Integer result = (Integer) whereToCount.traverse( new Visitor() { int c; public void start() { c=0; } public void before(Person o) { c++;} public Object getReturnValue() {return new Integer(c);} }); return result.intValue(); } }