// recursively process all the methods/fields.
for( Class c=bean.getClass(); c!=null; c=c.getSuperclass()) {
for( Method m : c.getDeclaredMethods() ) {
Option o = m.getAnnotation(Option.class);
if(o!=null) {
parser.addOption(new MethodSetter(parser,bean,m), o);
}
Argument a = m.getAnnotation(Argument.class);
if(a!=null) {
parser.addArgument(new MethodSetter(parser,bean,m), a);
}
}
for( Field f : c.getDeclaredFields() ) {
Option o = f.getAnnotation(Option.class);