public static Class lookup(Class listenerType) {
String key = listenerType.getName().replace ('.", '_");
Class adapterClass = (Class) reg.get (key);
if (adapterClass == null) {
String en = key.substring (0, key.lastIndexOf ("Listener"));
String cn = adapterPackage + "." + en + adapterSuffix;
try {
// Try to resolve one.
// adapterClass = (cl != null) ? cl.loadClass (cn) : Class.forName (cn);
adapterClass = (cl != null) ? cl.loadClass (cn)
: Thread.currentThread().getContextClassLoader().loadClass (cn); // rgf, 2006-01-05
} catch (ClassNotFoundException e) {
if (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;
}
|