package org.unitils.build;
import java.util.SortedSet;
import java.util.TreeSet;
public class ClassUsageLoggingClassLoader extends ClassLoader {
private static SortedSet<String> loadedClasses = new TreeSet<String>();
private static SortedSet<String> foundClasses = new TreeSet<String>();
public ClassUsageLoggingClassLoader() {
super();
}
public ClassUsageLoggingClassLoader(ClassLoader parent) {
super(parent);
}
@Override
public Class<?> loadClass(String name) throws ClassNotFoundException {
loadedClasses.add(name);
return super.loadClass(name);
}
@Override
public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
loadedClasses.add(name);
return super.loadClass(name, resolve);
}
@Override
protected Class<?> findClass(String name) throws ClassNotFoundException {
foundClasses.add(name);
return super.findClass(name);
}
public static SortedSet<String> getLoadedClasses() {
return loadedClasses;
}
public static SortedSet<String> getFoundClasses() {
return foundClasses;
}
}