|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectat.tuwien.ifs.somtoolbox.util.SubClassFinder
public class SubClassFinder
Utility class to find subclasses of a class/interface.
findSubclassesOf(Class, boolean)
Constructor Summary | |
---|---|
SubClassFinder()
|
Method Summary | ||
---|---|---|
private static
|
checkClass(Class<?> subClass,
Class<E> superClass,
List<Class<? extends E>> resultList,
boolean onlyDirect)
Check if the class fqClassName is a subclass of c . |
|
private static
|
checkClass(String fqClassName,
Class<E> c,
List<Class<? extends E>> result,
boolean onlyDirect)
Check if the class fqClassName is a subclass of c . |
|
static
|
findSubclassesOf(Class<E> superClass)
Find all subclasses of the given superClass . |
|
static
|
findSubclassesOf(Class<E> superClass,
boolean onlyDirect)
Find all subclasses of the given superClass . |
|
static void |
main(String[] args)
For testing: Searches and prints all subclasses of BackgroundImageVisualizer . |
|
private static
|
searchDir(File dir,
Class<E> superClass,
List<Class<? extends E>> resultList,
boolean onlyDirect)
Recursivly search through the given directory for subclasses of dir . |
|
private static
|
searchDir(File dir,
Class<E> superClass,
List<Class<? extends E>> resultList,
String relPath,
boolean onlyDirect)
Recursivly search through the given directory for subclasses of dir . |
|
private static
|
searchJarFile(File jarFile,
Class<E> superClass,
List<Class<? extends E>> resultList,
boolean onlyDirect)
Search through the jar-file jarFile for subclasses of superClass . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SubClassFinder()
Method Detail |
---|
public static void main(String[] args)
BackgroundImageVisualizer
.
args
- Superclassespublic static <E> ArrayList<Class<? extends E>> findSubclassesOf(Class<E> superClass)
superClass
. Searches through the complete classpath.
E
- superClass classsuperClass
- the class
public static <E> ArrayList<Class<? extends E>> findSubclassesOf(Class<E> superClass, boolean onlyDirect)
superClass
. Searches through the complete classpath.
E
- superClass classsuperClass
- the class (e.g. Object.class
)onlyDirect
- it true
only direct subclasses are found, i.e. classes that directly
extend/implement superClass
checkClass(Class, Class, List, boolean)
private static <E> void searchDir(File dir, Class<E> superClass, List<Class<? extends E>> resultList, boolean onlyDirect)
dir
.
E
- superClass classdir
- the Directory to search through.superClass
- the class to search subclasses of.resultList
- List where to add found subclasses to.onlyDirect
- only consider direct subclasses.checkClass(Class, Class, List, boolean)
private static <E> void searchDir(File dir, Class<E> superClass, List<Class<? extends E>> resultList, String relPath, boolean onlyDirect)
dir
.
E
- superClass classdir
- the Directory to search through.superClass
- the class to search subclasses of.resultList
- List where to add found subclasses to.relPath
- relative path within dir to search from, needed for recursion.onlyDirect
- only consider direct subclasses.searchDir(File, Class, List, boolean)
private static <E> void checkClass(String fqClassName, Class<E> c, List<Class<? extends E>> result, boolean onlyDirect)
fqClassName
is a subclass of c
.
E
- superClass classfqClassName
- the fully qualified class name to checkc
- the superClassresult
- ArrayList where to add fqClassName
if it is a subclassonlyDirect
- if true
only consider direct subclasses, i.e. classes that directly
extend/implement superClass
checkClass(Class, Class, List, boolean)
private static <E> void checkClass(Class<?> subClass, Class<E> superClass, List<Class<? extends E>> resultList, boolean onlyDirect)
fqClassName
is a subclass of c
.
E
- superClass classsubClass
- the class to checksuperClass
- the superClassresultList
- ArrayList where to add fqClassName
if it is a subclassonlyDirect
- if true
only consider direct subclasses, i.e. classes that directly
extend/implement superClass
checkClass(Class, Class, List, boolean)
private static <E> void searchJarFile(File jarFile, Class<E> superClass, List<Class<? extends E>> resultList, boolean onlyDirect)
jarFile
for subclasses of superClass
.
E
- superClass classjarFile
- the jar-file to searchsuperClass
- the superClassresultList
- ArrayList where to add subClasses of superClass
onlyDirect
- if true
only consider direct subclasses, i.e. classes that directly
extend/implement superClass
checkClass(Class, Class, List, boolean)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |