@Override public void afterInitialization(final IOCProcessingContext context, final InjectionContext injectionContext) { final MetaClass widgetClazz = MetaClassFactory.get(Widget.class); injectionContext.registerExtensionTypeCallback(new ExtensionTypeCallback() { @Override public void callback(final MetaClass type) { if (type.isDefaultInstantiable() && type.isAssignableTo(widgetClazz)) { addProviderForWidgetType(injectionContext, type); } } }); }
@Override public void afterInitialization(final IOCProcessingContext context, final InjectionContext injectionContext) { injectionContext.registerExtensionTypeCallback(type -> { try { register(getElementTags(type), injectionContext, type); } catch (final Throwable t) { final String typeName = type.getFullyQualifiedName(); final String className = ElementProviderExtension.class.getSimpleName(); final String msg = String.format("Error occurred while processing [%s] in %s.", typeName, className); throw new RuntimeException(msg, t); } }); }
@Override public void afterInitialization(final IOCProcessingContext context, final InjectionContext injectionContext) { injectionContext.registerExtensionTypeCallback(type -> { try { register(getElementTags(type), injectionContext, type); } catch (final Throwable t) { final String typeName = type.getFullyQualifiedName(); final String className = ElementProviderExtension.class.getSimpleName(); final String msg = String.format("Error occurred while processing [%s] in %s.", typeName, className); throw new RuntimeException(msg, t); } }); }
@Override public void afterInitialization(final IOCProcessingContext context, final InjectionContext injectionContext) { if (IOCProcessor.isJsInteropSupportEnabled()) { injectionContext.registerExtensionTypeCallback(new ExtensionTypeCallback() { final Multimap<MetaClass, MetaClass> jsTypeIfaceImpls = HashMultimap.create(); final Set<MetaClass> jsTypeIfaces = new HashSet<>();
@Override public void afterInitialization(final IOCProcessingContext context, final InjectionContext injectionContext) { if (DYNAMIC_VALIDATION_ENABLED) { injectionContext.registerExtensionTypeCallback(type -> { if (type.isConcrete() && type.isAssignableTo(ConstraintValidator.class) && !type.getFullyQualifiedName().equals(NullType.class.getName())) { logger.debug("Found ConstraintValidator, {}", type.getFullyQualifiedName()); validators.add(type); } }); final InjectableHandle handle = new InjectableHandle(MetaClassFactory.get(DynamicValidator.class), injectionContext.getQualifierFactory().forDefault()); injectionContext.registerInjectableProvider(handle, (injectionSite, nameGenerator) -> new DefaultCustomFactoryInjectable(handle.getType(), handle.getQualifier(), "DynamicValidatorFactory", Singleton.class, Arrays.asList(WiringElementType.NormalScopedBean), new DynamicValidatorBodyGenerator(validators))); } }