if (isDependent()) {
return producerInjectableInstance.getValueStatement();
}
final BlockBuilder callbackBuilder = injectionContext.getProcessingContext().getBlockBuilder();
final MetaClass creationCallbackRef = parameterizedAs(CreationalCallback.class,
typeParametersOf(injectedType));
final String var = InjectUtil.getUniqueVarName();
final Statement producerCreationalCallback = ObjectBuilder.newInstanceOf(creationCallbackRef)
.extend()
.publicOverridesMethod("getInstance", Parameter.of(CreationalContext.class, "pContext"))
._(Stmt.declareVariable(injectedType)
.named(var).initializeWith(producerInjectableInstance.getValueStatement()))
._(loadVariable("context").invoke("addBean",
loadVariable("context").invoke("getBeanReference",
Stmt.load(injectedType),
Stmt.load(qualifyingMetadata.getQualifiers())), Refs.get(var)))
._(Stmt.loadVariable(var).returnValue())
.finish().finish();
callbackBuilder.append(Stmt.declareVariable(creationCallbackRef).asFinal().named(var)
.initializeWith(producerCreationalCallback));
return loadVariable("context").invoke("getSingletonInstanceOrNew",
Stmt.loadVariable("injContext"),
Stmt.loadVariable(var),