findSuperTypes
public static List<Class<?>> findSuperTypes(Class<?> cls,
                            Class<?> endBefore)
Method that will find all sub-classes and implemented interfaces
 of a given class or interface. Classes are listed in order of
 precedence, starting with the immediate super-class, followed by
 interfaces class directly declares to implemented, and then recursively
 followed by parent of super-class and so forth.
 Note that Object.class is not included in the list
 regardless of whether endBefore argument is defined or not.
- Parameters:
- endBefore- Super-type to NOT include in results, if any; when
    encountered, will be ignored (and no super types are checked).