protected static ITypeLoader createTypeLoader( IFileSystemGosuClassRepository classRepository, IModule module, Class loaderClass) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException { try { ITypeLoader typeLoader; CommonServices.getGosuInitializationHooks().beforeTypeLoaderCreation(loaderClass); Constructor[] constructors = loaderClass.getConstructors(); typeLoader = null; for (Constructor cons : constructors) { Class[] parameterTypes = cons.getParameterTypes(); if (parameterTypes.length == 0) { typeLoader = (ITypeLoader) cons.newInstance(); } else if (parameterTypes.length == 1 && parameterTypes[0] == gw.lang.reflect.module.IModule.class) { typeLoader = (ITypeLoader) cons.newInstance(module); } else if (cons.getParameterTypes().length == 1 && cons.getParameterTypes()[0] == IGosuClassRepository.class) { typeLoader = (ITypeLoader) cons.newInstance(classRepository); } else { // Ignore it } } return typeLoader; } catch (LinkageError le) { throw le; } }
protected static ITypeLoader createTypeLoader( IFileSystemGosuClassRepository classRepository, IModule module, Class loaderClass) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException { try { ITypeLoader typeLoader; CommonServices.getGosuInitializationHooks().beforeTypeLoaderCreation(loaderClass); Constructor[] constructors = loaderClass.getConstructors(); typeLoader = null; for (Constructor cons : constructors) { Class[] parameterTypes = cons.getParameterTypes(); if (parameterTypes.length == 0) { typeLoader = (ITypeLoader) cons.newInstance(); } else if (parameterTypes.length == 1 && parameterTypes[0] == gw.lang.reflect.module.IModule.class) { typeLoader = (ITypeLoader) cons.newInstance(module); } else if (cons.getParameterTypes().length == 1 && cons.getParameterTypes()[0] == IGosuClassRepository.class) { typeLoader = (ITypeLoader) cons.newInstance(classRepository); } else { // Ignore it } } return typeLoader; } catch (LinkageError le) { throw le; } }
CommonServices.getGosuInitializationHooks().beforeTypeLoaderCreation( loaderClass ); CommonServices.getGosuInitializationHooks().afterTypeLoaderCreation();
CommonServices.getGosuInitializationHooks().beforeTypeLoaderCreation( loaderClass ); CommonServices.getGosuInitializationHooks().afterTypeLoaderCreation();
CommonServices.getGosuInitializationHooks().afterTypeLoaderCreation(); } finally { TypeSystem.popModule(this);
CommonServices.getGosuInitializationHooks().afterTypeLoaderCreation(); } finally { TypeSystem.popModule(this);