Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.jorphan.reflect
Class ClassFinder  view ClassFinder download ClassFinder.java

java.lang.Object
  extended byorg.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
           
 
Constructor Summary
private ClassFinder()
           
 
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
 

Field Detail

log

private static transient Logger log
Constructor Detail

ClassFinder

private ClassFinder()
Method Detail

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