@Override
    public Class<?> classForName(String name) {
        try {
            if (classes.containsKey(name)) {
                return classes.get(name);
            }
            final Class<?> clazz = module.getClassLoader().loadClass(name);
            classes.put(name, clazz);
            return clazz;
        } catch (ClassNotFoundException | LinkageError e) {
            throw new ResourceLoadingException(e);
        }
    }
@ Override public Class < ? > classForName ( String name ) { try { if ( classes . containsKey ( name ) ) { return classes . get ( name ) ; } final Class < ? > clazz = module . getClassLoader ( ) . loadClass ( name ) ; classes . put ( name , clazz ) ; return clazz ; } catch ( ClassNotFoundException | LinkageError e ) { throw new ResourceLoadingException ( e ) ; } }
If the class name is found in additionalClasses then return it.

Otherwise the class will be loaded from the module ClassLoader