void (PsiClass builderClass, ParameterData parameterData, PsiField field) { PsiMethod setter = null; for (PsiMethod method : builderClass.getMethods()) { if (Comparing.strEqual(method.getName(), parameterData.getSetterName()) && method.getParameterList().getParametersCount() == 1 && TypeConversionUtil.isAssignable(method.getParameterList().getParameters()[0].getType(), parameterData.getType())) { setter = method; fixSetterReturnType(builderClass, field, setter); break; } } if (setter == null) { setter = PropertyUtilBase.generateSetterPrototype(field, builderClass, true); final PsiIdentifier nameIdentifier = setter.getNameIdentifier(); assert nameIdentifier != null; nameIdentifier.replace(myElementFactory.createIdentifier(parameterData.getSetterName())); setter.getParameterList().getParameters()[0].getTypeElement().replace(myElementFactory.createTypeElement(parameterData.getType())); //setter varargs builderClass.add(setter); } }