package org.audit4j.core.util;
/**
* The Class ClassLoaderUtils.
*
* @author <a href="mailto:janith3000@gmail.com">Janith Bandara</a>
*
* @since 2.4.0
*/
public final class ClassLoaderUtils {
/**
* Instantiates a new class loader utils.
*/
private ClassLoaderUtils() {
super();
}
/**
* Gets the class loader.
*
* @param clazz the clazz
* @return the class loader
*/
public static ClassLoader getClassLoader(final Class<?> clazz) {
// Context class loader can be null
final ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
if (contextClassLoader != null) {
return contextClassLoader;
}
if (clazz != null) {
// The class loader for a specific class can also be null
final ClassLoader clazzClassLoader = clazz.getClassLoader();
if (clazzClassLoader != null) {
return clazzClassLoader;
}
}
// The only class loader we can rely on for not being null is the system
// one
return ClassLoader.getSystemClassLoader();
}
}