final void applyTo(Genie genie) { if (!configured) { configure(); } configured = true; validate(genie); for (Binder<?> binder : binders) { binder.register(genie); } genie.registerQualifiers(qualifiers); for (Map.Entry<Class<?>, GenericTypedBeanLoader<?>> entry : genericTypedBeanLoaders.entrySet()) { genie.registerGenericTypedBeanLoader(entry.getKey(), (GenericTypedBeanLoader) entry.getValue()); } }
final void applyTo(Genie genie) { if (!configured) { configure(); } configured = true; validate(genie); for (Binder<?> binder : binders) { binder.register(genie); } genie.registerQualifiers(qualifiers); for (Map.Entry<Class<?>, GenericTypedBeanLoader<?>> entry : genericTypedBeanLoaders.entrySet()) { genie.registerGenericTypedBeanLoader(entry.getKey(), (GenericTypedBeanLoader) entry.getValue()); } }
@SubClassFinder public static void foundGenericTypedBeanLoader(Class<? extends GenericTypedBeanLoader> loaderClass) { App app = App.instance(); GenieInjector genieInjector = app.injector(); Type[] ta = loaderClass.getGenericInterfaces(); for (Type t : ta) { if (t instanceof ParameterizedType) { ParameterizedType pt = (ParameterizedType) t; if (GenericTypedBeanLoader.class == pt.getRawType()) { Type compoentType = pt.getActualTypeArguments()[0]; genieInjector.genie().registerGenericTypedBeanLoader((Class) compoentType, app.getInstance(loaderClass)); } } } }
@SubClassFinder public static void foundGenericTypedBeanLoader(Class<? extends GenericTypedBeanLoader> loaderClass) { App app = App.instance(); GenieInjector genieInjector = app.injector(); Type[] ta = loaderClass.getGenericInterfaces(); for (Type t : ta) { if (t instanceof ParameterizedType) { ParameterizedType pt = (ParameterizedType) t; if (GenericTypedBeanLoader.class == pt.getRawType()) { Type compoentType = pt.getActualTypeArguments()[0]; genieInjector.genie().registerGenericTypedBeanLoader((Class) compoentType, app.getInstance(loaderClass)); } } } }