in src/main/java/org/apache/bsf/util/event/EventAdapterRegistry.java [51:98]
public static Class lookup(final Class listenerType) {
final String key = listenerType.getName().replace('.', '_');
Class adapterClass = (Class) reg.get(key);
if (adapterClass == null) {
final String en = key.substring(0, key.lastIndexOf("Listener"));
final String cn = adapterPackage + "." + en + adapterSuffix;
if (adapterClass == null) { // get Thread's context class loader
final ClassLoader tccl = Thread.currentThread().getContextClassLoader();
if (tccl != null) {
try { // try supplied class loader
adapterClass = Thread.currentThread().getContextClassLoader().loadClass(cn);
} catch (final ClassNotFoundException e02) {
}
}
}
try { // try ClassLoader set in this object (cf. this.setClassLoader())
if (cl != null) {
adapterClass = cl.loadClass(cn);
}
} catch (final ClassNotFoundException e01) {
}
if (adapterClass == null) { // Defined CL
try { // try supplied class loader
final ClassLoader defCL = BSFManager.getDefinedClassLoader();
if (cl != defCL) {
adapterClass = defCL.loadClass(cn);
}
} catch (final ClassNotFoundException e03) {
}
}
if (adapterClass == null && dynamic) {
// Unable to resolve one, try to generate one.
adapterClass = // if second argument is set to 'true', then the class file will be stored in the filesystem:
EventAdapterGenerator.makeEventAdapterClass(listenerType, false);
}
if (adapterClass != null) {
reg.put(key, adapterClass);
}
}
return adapterClass;
}