@@ -0,0 +1,1395 @@
+package jpower.core.reflect;%0A%0Aimport java.lang.reflect.Field;%0Aimport java.lang.reflect.Method;%0A%0A/**%0A * A Visitor for Class Information%0A */%0Apublic abstract class ClassVisitor%0A%7B%0A%0A   public final void visit(Class%3C?%3E clazz)%0A   %7B%0A      visitClass(clazz);%0A%0A      visitPackage(clazz.getPackage());%0A%0A      visitName(clazz.getName());%0A%0A      visitSuperClass(clazz.getSuperclass());%0A%0A      visitInterfaces(clazz.getInterfaces());%0A%0A      for (Class%3C?%3E theInterface : clazz.getInterfaces())%0A      %7B%0A         visitInterface(theInterface);%0A      %7D%0A%0A      visitFields(clazz.getDeclaredFields());%0A%0A      for (Field field : clazz.getDeclaredFields())%0A      %7B%0A         visitField(field);%0A      %7D%0A%0A      visitMethods(clazz.getDeclaredMethods());%0A%0A      for (Method method : clazz.getDeclaredMethods())%0A      %7B%0A         visitMethod(method);%0A      %7D%0A   %7D%0A%0A   public void visitClass(Class%3C?%3E clazz)%0A   %7B%0A   %7D%0A%0A   public void visitPackage(Package pkg)%0A   %7B%0A   %7D%0A%0A   public void visitSuperClass(Class%3C?%3E superClass)%0A   %7B%0A   %7D%0A%0A   public void visitInterface(Class%3C?%3E aInterface)%0A   %7B%0A   %7D%0A%0A   public void visitInterfaces(Class%3C?%3E%5B%5D interfaces)%0A   %7B%0A%0A   %7D%0A%0A   public void visitName(String name)%0A   %7B%0A   %7D%0A%0A   public void visitFields(Field%5B%5D fields)%0A   %7B%0A   %7D%0A%0A   public void visitField(Field field)%0A   %7B%0A   %7D%0A%0A   public void visitMethods(Method%5B%5D methods)%0A   %7B%0A   %7D%0A%0A   public void visitMethod(Method method)%0A   %7B%0A   %7D%0A%7D%0A

Add ClassVisitor