private Statement generateFactoryHandle(final Injectable injectable,
@SuppressWarnings("rawtypes") final BlockBuilder curMethod) {
final String handleVarName = "handleFor" + injectable.getFactoryName();
curMethod.append(declareFinalVariable(handleVarName, FactoryHandleImpl.class, ObjectBuilder.newInstanceOf(FactoryHandleImpl.class)
.withParameters(loadLiteral(injectable.getInjectedType()),
loadLiteral(injectable.getFactoryName()),
loadLiteral(injectable.getScope()),
loadLiteral(false),
loadLiteral(injectable.getBeanName()),
loadLiteral(!injectable.isContextual()))));
curMethod.append(loadVariable(handleVarName).invoke("setAssignableTypes", getAssignableTypesArrayStmt(injectable)));
if (!injectable.getQualifier().isDefaultQualifier()) {
curMethod.append(loadVariable(handleVarName).invoke("setQualifiers", getAnnotationArrayStmt(injectable.getQualifier())));
}
return loadVariable(handleVarName);
}