MyVisitor { {{ public void invokeMethod(String name, Object obj, Class cl) { try { Method meth = getMethod(name, cl); if (meth != null) { meth.setAccessible(true); meth.invoke(this, new Object[] { obj }); } } catch (SecurityException e) { throw new RuntimeException("\n" + e); } catch (IllegalAccessException e) { throw new RuntimeException("\n" + e); } catch (InvocationTargetException e) { e.printStackTrace(); // prints to stderr throw new RuntimeException("\n" + e.getTargetException()); } } }} } //Add to repair.beh MyClassGraph { {{ public MyClassGraph(TraversalGraph tg) { super(tg); ClassGraph cg = (ClassGraph) tg.getClassGraph(); java.util.Iterator edges = tg.getEdgeSets().iterator(); while (edges.hasNext()) { edu.neu.ccs.demeter.aplib.EdgeI edge = ((TraversalGraph.EdgeSet) edges.next()).getEdge(); Class cl = cg.getNodeClass(edge.getSource()); namesClasses.put(cl.getName(), cl); } } public MyClassGraph(ClassGraph cg, String s) { this(new TraversalGraph(s, cg)); } }} }