public static Class lookup()

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;
  }