public static Class lookup()

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