/** * Gets all inherited classes for a specified class (in a flat structure). Its super classes, and its interfaces. * * This process is recursive, if class A inherit from B which also inherit from C and D, the result will * be (B, C, D). * * @param clazz the clazz to analyse * @return the list of inherited classes */ public static Set<Class> getInheritedClasses(Class clazz) { Set<Class> inheritedClasses = Sets.newHashSet(); // add super class, and add recursively their inherited classes Class superClass = clazz.getSuperclass(); if (superClass != null) { inheritedClasses.add(superClass); inheritedClasses.addAll(getInheritedClasses(superClass)); } // add all interfaces, and recursively add their inherited classes Class[] interfaces = clazz.getInterfaces(); for (Class anInterface : interfaces) { inheritedClasses.add(anInterface); inheritedClasses.addAll(getInheritedClasses(anInterface)); } return inheritedClasses; } }
/** * Gets all inherited classes for a specified class (in a flat structure). Its super classes, and its interfaces. * * This process is recursive, if class A inherit from B which also inherit from C and D, the result will * be (B, C, D). * * @param clazz the clazz to analyse * @return the list of inherited classes */ public static Set<Class> getInheritedClasses(Class clazz) { Set<Class> inheritedClasses = Sets.newHashSet(); // add super class, and add recursively their inherited classes Class superClass = clazz.getSuperclass(); if (superClass != null) { inheritedClasses.add(superClass); inheritedClasses.addAll(getInheritedClasses(superClass)); } // add all interfaces, and recursively add their inherited classes Class[] interfaces = clazz.getInterfaces(); for (Class anInterface : interfaces) { inheritedClasses.add(anInterface); inheritedClasses.addAll(getInheritedClasses(anInterface)); } return inheritedClasses; } }
if (c.isPresent()) { coldClasses.addAll(MoreClasses.getInheritedClasses(c.get().getClass())); // add all inherited classes } else { logger.debug(
if (c.isPresent()) { coldClasses.addAll(MoreClasses.getInheritedClasses(c.get().getClass())); // add all inherited classes } else { logger.debug(