+
+ // helper
+
+ private static void add(Class cl, ArrayList<Class> alc, ArrayList<Method> alm) {
+ for(Method m : cl.getDeclaredMethods())
+ alm.add(m);
+ for(Class c : cl.getDeclaredClasses()) {
+ alc.add(c);
+ add(c, alc, alm);
+ }
+ if (cl.getSuperclass() != Object.class)
+ add(cl.getSuperclass(), alc, alm);
+ }
+