assert psiClass != null;
UserMapKeys.addWriteUsageFor(psiField);
PsiType returnType = getReturnType(psiField);
LombokLightMethodBuilder method = LombokPsiElementFactory.getInstance().createLightMethod(psiField.getManager(), methodName)
.withMethodReturnType(returnType)
.withContainingClass(psiClass)
.withParameter(fieldName, psiFieldType)
.withNavigationElement(psiField);
if (StringUtil.isNotEmpty(methodModifier)) {
method.withModifier(methodModifier);
}
if (psiField.hasModifierProperty(PsiModifier.STATIC)) {
method.withModifier(PsiModifier.STATIC);
}
PsiParameter methodParameter = method.getParameterList().getParameters()[0];
PsiModifierList methodParameterModifierList = methodParameter.getModifierList();
if (null != methodParameterModifierList) {
final Collection<String> annotationsToCopy = PsiAnnotationUtil.collectAnnotationsToCopy(psiField,
LombokUtils.NON_NULL_PATTERN, LombokUtils.NULLABLE_PATTERN);
for (String annotationFQN : annotationsToCopy) {
methodParameterModifierList.addAnnotation(annotationFQN);
}
}
copyAnnotations(psiField, method.getModifierList(), LombokUtils.DEPRECATED_PATTERN);
return method;
}