Package tigase.osgi.util
Class ClassUtil
java.lang.Object
tigase.osgi.util.ClassUtil
ClassUtil file contains code used for loading all implementations of specified interface or
abstract class found in classpath. As a result of calling some functions you can have Set
containing all required classes.
Created: Wed Oct 6 08:25:52 2004
- Version:
- $Rev: 609 $
- Author:
- Artur Hefczyc
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetClassesAnnotated(ClassLoader loader, File f, T cls) Scans file for classes annotated with annotation T * * @param loader class loader used to load classesgetClassesAnnotated(org.osgi.framework.Bundle bundle, T cls) Scans OSGI bundle for classes annotated with annotation T * * @param bundle bundle to scan for annotated classesgetClassesFromBundle(org.osgi.framework.Bundle bundle) getClassesFromNames(ClassLoader loader, Set<String> names) getClassesImplementing(ClassLoader loader, File f, T cls) getClassesImplementing(Collection<Class> classes, T cls) getClassesImplementing(org.osgi.framework.Bundle bundle, T cls) Scans OSGI bundle for classes implementing class TgetClassesImplementing(T cls) static StringgetClassNameFromFileName(String fileName) getClassNamesFromDir(File dir) getClassNamesFromJar(File jarFile) getClassNamesFromWar(File jarFile) getFileListDeep(File path) static <T> Set<T> getImplementations(Class<T> obj) static voidwalkInDirForFiles(File base_dir, String path, Set<String> set)
-
Constructor Details
-
ClassUtil
public ClassUtil()
-
-
Method Details
-
getClassNameFromFileName
-
getClassNamesFromDir
-
getClassNamesFromJar
- Throws:
IOException
-
getClassNamesFromWar
- Throws:
IOException
-
getClassesAnnotated
public static <T extends Class,S extends Class> Set<S> getClassesAnnotated(ClassLoader loader, File f, T cls) throws IOException, ClassNotFoundException Scans file for classes annotated with annotation T * * @param loader class loader used to load classes- Parameters:
f- file to scan for classescls- annotation class- Returns:
- set of annotated classes
- Throws:
IOExceptionClassNotFoundException
-
getClassesAnnotated
public static <T extends Class,S extends Class> Set<S> getClassesAnnotated(org.osgi.framework.Bundle bundle, T cls) throws IOException, ClassNotFoundException Scans OSGI bundle for classes annotated with annotation T * * @param bundle bundle to scan for annotated classes- Parameters:
cls- annotation class- Returns:
- set of annotated classes
- Throws:
IOExceptionClassNotFoundException
-
getClassesFromBundle
-
getClassesFromClassPath
- Throws:
IOExceptionClassNotFoundException
-
getClassesFromNames
public static Set<Class> getClassesFromNames(ClassLoader loader, Set<String> names) throws ClassNotFoundException - Throws:
ClassNotFoundException
-
getClassesImplementing
-
getClassesImplementing
public static <T extends Class> Set<T> getClassesImplementing(T cls) throws IOException, ClassNotFoundException - Throws:
IOExceptionClassNotFoundException
-
getClassesImplementing
public static <T extends Class> Set<T> getClassesImplementing(ClassLoader loader, File f, T cls) throws IOException, ClassNotFoundException - Throws:
IOExceptionClassNotFoundException
-
getClassesImplementing
public static <T extends Class> Set<T> getClassesImplementing(org.osgi.framework.Bundle bundle, T cls) throws IOException, ClassNotFoundException Scans OSGI bundle for classes implementing class T- Type Parameters:
T- return type param- Parameters:
bundle- bundle to scancls- base class- Returns:
- returns set of implementations
- Throws:
IOExceptionClassNotFoundException
-
getFileListDeep
-
getImplementations
public static <T> Set<T> getImplementations(Class<T> obj) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException -
walkInDirForFiles
-