blob: 2557fcb34777f5566a00c45e9b1b85d43a09fa4c (
plain) (
tree)
|
|
package org.openslx.taskmanager.util;
public class ClassLoaderHack
{
/**
* Get Class meta-object for given class in package. Only return class if it's somehow
* extending from given baseClass.
*
* @param packageName package to search in
* @param className name of class to look for
* @param baseClass class the class in question has to be extended from
* @return class meta object, or null if not found
*/
@SuppressWarnings( "unchecked" )
public static <T> Class<? extends T> getClass( String packageName, String className, Class<T> baseClass )
{
final Class<?> clazz;
try {
clazz = Class.forName( packageName + '.' + className );
} catch ( ClassNotFoundException e ) {
return null;
}
if ( clazz == null || ( baseClass != null && !baseClass.isAssignableFrom( clazz ) ) ) {
return null;
}
return (Class<? extends T>)clazz;
}
}
|