import edu.neu.ccs.demeter.dj.*; import java.util.*; import java.lang.reflect.*; import edu.neu.ccs.demeter.*; abstract class MyVisitor extends Visitor { public MyVisitor() { super(); } 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()); } } void universal_trv0_bef(UniversalVisitor _v_) { ((UniversalVisitor) _v_).before(this); } void universal_trv0_aft(UniversalVisitor _v_) { ((UniversalVisitor) _v_).after(this); } void universal_trv0(UniversalVisitor _v_) { } }