in src/main/java/org/apache/bsf/util/event/EventAdapterRegistry.java [64:112]
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;
}