@Override public void assignValue(JBlock targetBlock, IJAssignmentTarget fieldRef, EComponentHolder holder, Element element, Element param) { TypeMirror typeMirror = annotationHelper.extractAnnotationClassParameter(element); if (typeMirror == null) { typeMirror = param.asType(); typeMirror = getProcessingEnvironment().getTypeUtils().erasure(typeMirror); } String typeQualifiedName = typeMirror.toString(); AbstractJClass injectedClass = getJClass(annotationHelper.generatedClassQualifiedNameFromQualifiedName(typeQualifiedName)); JInvocation beanInstance = injectedClass.staticInvoke(EBeanHolder.GET_INSTANCE_METHOD_NAME).arg(holder.getContextRef()); IJStatement assignment = fieldRef.assign(beanInstance); if (param.getKind() == ElementKind.FIELD) { boolean hasNonConfigurationInstanceAnnotation = element.getAnnotation(NonConfigurationInstance.class) != null; if (hasNonConfigurationInstanceAnnotation) { JConditional conditional = targetBlock._if(fieldRef.eq(_null())); conditional._then().add(assignment); assignment = conditional; } } targetBlock.add(assignment); }
@Override public void assignValue(JBlock targetBlock, IJAssignmentTarget fieldRef, EComponentHolder holder, Element element, Element param) { TypeMirror typeMirror = annotationHelper.extractAnnotationClassParameter(element); if (typeMirror == null) { typeMirror = param.asType(); typeMirror = getProcessingEnvironment().getTypeUtils().erasure(typeMirror); } String typeQualifiedName = typeMirror.toString(); AbstractJClass injectedClass = getJClass(annotationHelper.generatedClassQualifiedNameFromQualifiedName(typeQualifiedName)); JInvocation beanInstance = injectedClass.staticInvoke(EBeanHolder.GET_INSTANCE_METHOD_NAME).arg(holder.getContextRef()); IJStatement assignment = fieldRef.assign(beanInstance); if (param.getKind() == ElementKind.FIELD) { boolean hasNonConfigurationInstanceAnnotation = element.getAnnotation(NonConfigurationInstance.class) != null; if (hasNonConfigurationInstanceAnnotation) { JConditional conditional = targetBlock._if(fieldRef.eq(_null())); conditional._then().add(assignment); assignment = conditional; } } targetBlock.add(assignment); }