Github user zmacomber commented on a diff in the pull request:
https://github.com/apache/commons-lang/pull/358#discussion_r225509052
--- Diff: src/main/java/org/apache/commons/lang3/ClassUtils.java ---
@@ -1059,6 +1066,69 @@ public static boolean isInnerClass(final Class<?>
cls) {
return getClass(loader, className, initialize);
}
+ /**
+ * Returns a list of base classes/interfaces underneath the supplied
package
+ * This method only retrieves base classes/interfaces that have
children that can be instantiated
+ * via a no-args constructor
+ * The class loader is retrieved via
Thread.currentThread().getContextClassLoader()
+ * This only retrieves base classes/interfaces directly underneath the
supplied package
+ *
+ * @param desiredBase the desired base class/interface to retrieve
+ * @param packageName the package name in the standard import format
(i.e. "java.lang.String")
+ * @param <T> The desired base class or interface type to retrieve
+ * @return a list of base classes/interfaces that match the supplied
type underneath the supplied package
+ * @throws URISyntaxException if the packageName is not found in the
class loader
+ * @throws IOException if an I/O error occurs in getting a new
directory stream
+ * @throws IllegalArgumentException if the desiredBase or packageName
are invalid
+ */
+ public static <T> List<T> getBaseClasses(final Class<T> desiredBase,
final String packageName)
+ throws URISyntaxException, IOException,
IllegalArgumentException {
+
+ if (desiredBase == null) {
--- End diff --
Will do
---