Collection<PsiMethod> (@NotNull BuilderInfo info) { List<PsiMethod> methods = new ArrayList<>(); final PsiType returnType = info.getBuilderType(); final String fieldName = info.getFieldName(); final String singularName = createSingularName(info.getSingularAnnotation(), fieldName); final PsiClass builderClass = info.getBuilderClass(); final LombokLightMethodBuilder oneAddMethodBuilder = new LombokLightMethodBuilder( info.getManager(), LombokUtils.buildAccessorName(info.getSetterPrefix(), singularName, info.getCapitalizationStrategy())) .withContainingClass(builderClass) .withMethodReturnType(returnType) .withNavigationElement(info.getVariable()) .withModifier(info.getVisibilityModifier()) .withAnnotations(info.getAnnotations()); addOneMethodParameter(oneAddMethodBuilder, info.getFieldType(), singularName); if(info.getVariable() instanceof PsiField psiField) { LombokCopyableAnnotations.copyCopyableAnnotations(psiField, oneAddMethodBuilder.getModifierList(), LombokCopyableAnnotations.COPY_TO_BUILDER_SINGULAR_SETTER); } final String oneMethodBody = getOneMethodBody(singularName, info); oneAddMethodBuilder.withBodyText(oneMethodBody); createRelevantNonNullAnnotation(info.getNullAnnotationLibrary(), oneAddMethodBuilder); methods.add(oneAddMethodBuilder); final LombokLightMethodBuilder allAddMethodBuilder = new LombokLightMethodBuilder( info.getManager(), LombokUtils.buildAccessorName(info.getSetterPrefix(), fieldName, info.getCapitalizationStrategy())) .withContainingClass(builderClass) .withMethodReturnType(returnType) .withNavigationElement(info.getVariable()) .withModifier(info.getVisibilityModifier()) .withAnnotations(info.getAnnotations()); addAllMethodParameter(allAddMethodBuilder, info.getFieldType(), fieldName); if(info.getVariable() instanceof PsiField psiField) { LombokCopyableAnnotations.copyCopyableAnnotations(psiField, allAddMethodBuilder.getModifierList(), LombokCopyableAnnotations.COPY_TO_SETTER); } final String allMethodBody = getAllMethodBody(fieldName, info); allAddMethodBuilder.withBodyText(allMethodBody); createRelevantNonNullAnnotation(info.getNullAnnotationLibrary(), allAddMethodBuilder); methods.add(allAddMethodBuilder); final LombokLightMethodBuilder clearMethodBuilder = new LombokLightMethodBuilder( info.getManager(), createSingularClearMethodName(fieldName, info.getCapitalizationStrategy())) .withContainingClass(builderClass) .withMethodReturnType(returnType) .withNavigationElement(info.getVariable()) .withModifier(info.getVisibilityModifier()) .withAnnotations(info.getAnnotations()); final String clearMethodBlockText = getClearMethodBody(info); clearMethodBuilder.withBodyText(clearMethodBlockText); createRelevantNonNullAnnotation(info.getNullAnnotationLibrary(), clearMethodBuilder); methods.add(clearMethodBuilder); return methods; }