/** * Extracts the declared Hadoop configuration method (methods with * {@literal @}HadoopConf annotations) from a class. * * @param clazz The class to extract conf method declarations from. * @param includeParentClasses If true, also includes declared methods in the super classes. * @return The list of configuration methods declared. */ public static List<ConfigurationMethod> extractDeclaredMethods( Class<?> clazz, boolean includeParentClasses) { final List<ConfigurationMethod> methods = new ArrayList<ConfigurationMethod>(); do { for (Method method : clazz.getDeclaredMethods()) { final HadoopConf annotation = method.getAnnotation(HadoopConf.class); if (null != annotation) { methods.add(new ConfigurationMethod(method, annotation)); } } clazz = clazz.getSuperclass(); } while (includeParentClasses && null != clazz); return methods; } }