@Override public List<MemberAnnotatedWithAtStat> apply(Class<?> clazz) {
    List<MemberAnnotatedWithAtStat> annotatedMembers = Lists.newArrayList();

    for (Class<?> currentClass = clazz;
        currentClass != Object.class;
        currentClass = currentClass.getSuperclass()) {
      for (Method method : currentClass.getDeclaredMethods()) {
        Stat stat = method.getAnnotation(Stat.class);
        if (stat != null && staticMemberPolicy.shouldAccept(method)) {
          annotatedMembers.add(new MemberAnnotatedWithAtStat(stat, method));
        }
      }
      for (Field field : currentClass.getDeclaredFields()) {
        Stat stat = field.getAnnotation(Stat.class);
        if (stat != null && staticMemberPolicy.shouldAccept(field)) {
          annotatedMembers.add(new MemberAnnotatedWithAtStat(stat, field));
        }
      }
    }

    return annotatedMembers;
  }
@ Override public List < MemberAnnotatedWithAtStat > apply ( Class < ? > clazz ) { List < MemberAnnotatedWithAtStat > annotatedMembers = Lists . newArrayList ( ) ; for ( Class < ? > currentClass = clazz ; currentClass != Object . class ; currentClass = currentClass . getSuperclass ( ) ) { for ( Method method : currentClass . getDeclaredMethods ( ) ) { Stat stat = method . getAnnotation ( Stat . class ) ; if ( stat != null && staticMemberPolicy . shouldAccept ( method ) ) { annotatedMembers . add ( new MemberAnnotatedWithAtStat ( stat , method ) ) ; } } for ( Field field : currentClass . getDeclaredFields ( ) ) { Stat stat = field . getAnnotation ( Stat . class ) ; if ( stat != null && staticMemberPolicy . shouldAccept ( field ) ) { annotatedMembers . add ( new MemberAnnotatedWithAtStat ( stat , field ) ) ; } } } return annotatedMembers ; }
{@inheritDoc}

<p>Climbs the class hierarchy finding all annotated members.