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
-
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 String
getClassNameFromFileName
(String fileName) getClassNamesFromDir
(File dir) getClassNamesFromJar
(File jarFile) getClassNamesFromWar
(File jarFile) getFileListDeep
(File path) static <T> Set<T>
getImplementations
(Class<T> obj) static void
walkInDirForFiles
(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:
IOException
ClassNotFoundException
-
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:
IOException
ClassNotFoundException
-
getClassesFromBundle
-
getClassesFromClassPath
- Throws:
IOException
ClassNotFoundException
-
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:
IOException
ClassNotFoundException
-
getClassesImplementing
public static <T extends Class> Set<T> getClassesImplementing(ClassLoader loader, File f, T cls) throws IOException, ClassNotFoundException - Throws:
IOException
ClassNotFoundException
-
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:
IOException
ClassNotFoundException
-
getFileListDeep
-
getImplementations
public static <T> Set<T> getImplementations(Class<T> obj) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException -
walkInDirForFiles
-