@Override
public void registerWithBeanManager(final InjectionContext context, final Statement valueRef) {
if (InjectUtil.checkIfTypeNeedsAddingToBeanStore(context, this)) {
final QualifyingMetadata md = delegate.getQualifyingMetadata();
ActivatedBy ab = delegate.getInjectedType().getAnnotation(ActivatedBy.class);
if (ab != null) {
if (ab.value().isAnnotationPresent(LoadAsync.class)) {
throw new RuntimeException(LoadAsync.class.getSimpleName()
+ " is not supported on bean activators. Check type: " + ab.value().getName());
}
context.getProcessingContext().appendToEnd(
Stmt.loadVariable(context.getProcessingContext().getContextVariableReference())
.invoke("addBean", type, delegate.getInjectedType(), Refs.get(getCreationalCallbackVarName()),
isSingleton(), md.render(), delegate.getBeanName(), false, Stmt.load(ab.value())));
}
else {
context.getProcessingContext().appendToEnd(
Stmt.loadVariable(context.getProcessingContext().getContextVariableReference())
.invoke("addBean", type, delegate.getInjectedType(), Refs.get(getCreationalCallbackVarName()),
isSingleton(), md.render(), delegate.getBeanName(), false));
}
for (final RegistrationHook hook : getRegistrationHooks()) {
hook.onRegister(context, valueRef);
}