Skip to content

Commit b6ea24a

Browse files
authored
Sonar: Refactor partialUpdate method to reduce its Cognitive Complexity (#32081)
1 parent cdf7365 commit b6ea24a

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/patch_template.ejs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,9 @@ _%>
3838
<%= mapper %>.partialUpdate(existing<%= entityClass %>, <%= instanceName %>);
3939
<%_ } else { _%>
4040
<%_ for (const field of fields.filter(field => !field.id && !field.transient)) { _%>
41-
if (<%= instanceName %>.get<%= field.fieldInJavaBeanMethod %>() != null) {
42-
existing<%= entityClass %>.set<%= field.fieldInJavaBeanMethod %>(<%= instanceName %>.get<%= field.fieldInJavaBeanMethod %>());
43-
}
41+
updateIfPresent(existing<%= entityClass %>::set<%= field.fieldInJavaBeanMethod %>, <%= instanceName %>.get<%= field.fieldInJavaBeanMethod %>());
4442
<%_ if (field.fieldWithContentType) { _%>
45-
if (<%= instanceName %>.get<%= field.fieldInJavaBeanMethod %>ContentType() != null) {
46-
existing<%= entityClass %>.set<%= field.fieldInJavaBeanMethod %>ContentType(<%= instanceName %>.get<%= field.fieldInJavaBeanMethod %>ContentType());
47-
}
43+
updateIfPresent(existing<%= entityClass %>::set<%= field.fieldInJavaBeanMethod %>ContentType, <%= instanceName %>.get<%= field.fieldInJavaBeanMethod %>ContentType());
4844
<%_ } _%>
4945
<%_ } %>
5046
<% } %>

generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.java.ejs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ import java.util.List;
7575
<%_ if (!reactive) { _%>
7676
import java.util.Optional;
7777
<%_ } _%>
78+
<%_ if (updatableEntity && !dtoMapstruct && fields.some(field => !field.id && !field.transient)) { _%>
79+
import java.util.function.Consumer;
80+
<%_ } _%>
7881
<%_ if (primaryKey.typeUUID) { _%>
7982
import java.util.UUID;
8083
<%_ } _%>
@@ -315,4 +318,12 @@ public class <%= serviceClassName %><% if (serviceImpl) { %> implements <%= enti
315318
<%_ } } _%>
316319
}
317320
<%_ } _%>
321+
<%_ if (updatableEntity && !dtoMapstruct && fields.some(field => !field.id && !field.transient)) { _%>
322+
323+
private <T> void updateIfPresent(Consumer<T> setter, T value) {
324+
if (value != null) {
325+
setter.accept(value);
326+
}
327+
}
328+
<%_ } _%>
318329
}

generators/spring-boot/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ import java.util.Optional;
120120
<%_ if (primaryKey.hasUUID) { _%>
121121
import java.util.UUID;
122122
<%_ } _%>
123+
<%_ if (updatableEntity && !viaService && !dtoMapstruct && fields.some(field => !field.id && !field.transient)) { _%>
124+
import java.util.function.Consumer;
125+
<%_ } _%>
123126
<%_ if ((searchEngineAny || fieldsContainNoOwnerOneToOne) && !reactive) { _%>
124127
<%_ if (!viaService) { _%>
125128
import java.util.stream.Collectors;
@@ -518,4 +521,12 @@ public class <%= entityClass %>Resource {
518521
<%_ } _%>
519522
<%- include('../../_partials_entity_/search_template', {viaService}); -%>
520523
<%_ } _%>
524+
<%_ if (updatableEntity && !viaService && !dtoMapstruct && fields.some(field => !field.id && !field.transient)) { _%>
525+
526+
private <T> void updateIfPresent(Consumer<T> setter, T value) {
527+
if (value != null) {
528+
setter.accept(value);
529+
}
530+
}
531+
<%_ } _%>
521532
}

0 commit comments

Comments
 (0)