java.lang.Object
org.apache.jorphan.reflect.ClassFinder
- public final class ClassFinder
- extends java.lang.Object
This class finds classes that implement one or more specified interfaces.
- Version:
- $Revision: 1.12 $
|
Field Summary |
private static Logger |
log
|
|
Method Summary |
private static java.lang.String[] |
addJarsInPath(java.lang.String[] paths)
Find classes in the provided path(s)/jar(s) that extend the class(es). |
private static java.util.Set |
findAllSubclasses(java.util.List listSuperClasses,
java.util.Set listAllClasses,
boolean innerClasses)
Finds all classes that extend the classes in the listSuperClasses
ArrayList, searching in the listAllClasses ArrayList. |
private static void |
findAllSubclassesOneClass(java.lang.Class theClass,
java.util.Set listAllClasses,
java.util.Set listSubClasses,
boolean innerClasses)
Finds all classes that extend the class, searching in the listAllClasses
ArrayList. |
private static void |
findClassesInOnePath(java.lang.String strPath,
java.util.Set listClasses)
|
private static void |
findClassesInPaths(java.util.List listPaths,
java.util.Set listClasses)
|
private static void |
findClassesInPathsDir(java.lang.String strPathElement,
java.io.File dir,
java.util.Set listClasses)
|
static java.util.List |
findClassesThatExtend(java.lang.String[] paths,
java.lang.Class[] superClasses)
Convenience method for findClassesThatExtend(Class[],
boolean)
with the option to include inner classes in the search set to false. |
static java.util.List |
findClassesThatExtend(java.lang.String[] strPathsOrJars,
java.lang.Class[] superClasses,
boolean innerClasses)
|
private static java.lang.String |
fixClassName(java.lang.String strClassName)
Converts a class file from the text stored in a Jar file to a version
that can be used in Class.forName(). |
private static java.lang.String |
fixDotDir(java.lang.String path)
|
private static java.lang.String[] |
fixDotDirs(java.lang.String[] paths)
Get all interfaces that the class implements, including parent
interfaces. |
private static java.lang.String |
fixEndingSlashes(java.lang.String string)
|
private static java.lang.String[] |
fixEndingSlashes(java.lang.String[] strings)
|
private static java.lang.String |
fixSlashes(java.lang.String str)
|
private static java.lang.String[] |
fixSlashes(java.lang.String[] strings)
|
private static java.util.List |
getClasspathMatches(java.lang.String[] strPathsOrJars)
|
private static java.lang.String |
replaceString(java.lang.String s,
java.lang.String strToFind,
java.lang.String strToReplace)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
log
private static transient Logger log
ClassFinder
private ClassFinder()
findClassesThatExtend
public static java.util.List findClassesThatExtend(java.lang.String[] paths,
java.lang.Class[] superClasses)
throws java.io.IOException,
java.lang.ClassNotFoundException
- Convenience method for
findClassesThatExtend(Class[],
boolean)
with the option to include inner classes in the search set to false.
addJarsInPath
private static java.lang.String[] addJarsInPath(java.lang.String[] paths)
- Find classes in the provided path(s)/jar(s) that extend the class(es).
findClassesThatExtend
public static java.util.List findClassesThatExtend(java.lang.String[] strPathsOrJars,
java.lang.Class[] superClasses,
boolean innerClasses)
throws java.io.IOException,
java.lang.ClassNotFoundException
getClasspathMatches
private static java.util.List getClasspathMatches(java.lang.String[] strPathsOrJars)
fixDotDirs
private static java.lang.String[] fixDotDirs(java.lang.String[] paths)
- Get all interfaces that the class implements, including parent
interfaces. This keeps us from having to instantiate and check
instanceof, which wouldn't work anyway since instanceof requires a
hard-coded class or interface name.
fixDotDir
private static java.lang.String fixDotDir(java.lang.String path)
fixEndingSlashes
private static java.lang.String[] fixEndingSlashes(java.lang.String[] strings)
fixEndingSlashes
private static java.lang.String fixEndingSlashes(java.lang.String string)
fixSlashes
private static java.lang.String[] fixSlashes(java.lang.String[] strings)
fixSlashes
private static java.lang.String fixSlashes(java.lang.String str)
replaceString
private static java.lang.String replaceString(java.lang.String s,
java.lang.String strToFind,
java.lang.String strToReplace)
findAllSubclasses
private static java.util.Set findAllSubclasses(java.util.List listSuperClasses,
java.util.Set listAllClasses,
boolean innerClasses)
- Finds all classes that extend the classes in the listSuperClasses
ArrayList, searching in the listAllClasses ArrayList.
findAllSubclassesOneClass
private static void findAllSubclassesOneClass(java.lang.Class theClass,
java.util.Set listAllClasses,
java.util.Set listSubClasses,
boolean innerClasses)
- Finds all classes that extend the class, searching in the listAllClasses
ArrayList.
fixClassName
private static java.lang.String fixClassName(java.lang.String strClassName)
- Converts a class file from the text stored in a Jar file to a version
that can be used in Class.forName().
findClassesInOnePath
private static void findClassesInOnePath(java.lang.String strPath,
java.util.Set listClasses)
throws java.io.IOException
findClassesInPaths
private static void findClassesInPaths(java.util.List listPaths,
java.util.Set listClasses)
throws java.io.IOException
findClassesInPathsDir
private static void findClassesInPathsDir(java.lang.String strPathElement,
java.io.File dir,
java.util.Set listClasses)
throws java.io.IOException