Skip to content

Commit cd92753

Browse files
committed
simplify DTOs
Signed-off-by: David BRAQUART <[email protected]>
1 parent 2d08755 commit cd92753

15 files changed

+90
-126
lines changed

src/main/java/org/gridsuite/modification/server/entities/tabular/TabularModificationsEntity.java

Lines changed: 29 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -46,66 +46,51 @@ public class TabularModificationsEntity extends ModificationEntity {
4646

4747
public TabularModificationsEntity(@NonNull TabularModificationInfos tabularModificationInfos) {
4848
super(tabularModificationInfos);
49-
assignModificationAttributes(tabularModificationInfos);
49+
assignAttributes(tabularModificationInfos);
5050
}
5151

5252
public TabularModificationsEntity(@NonNull LimitSetsTabularModificationInfos tabularModificationInfos) {
5353
super(tabularModificationInfos);
54-
assignModificationAttributes(tabularModificationInfos);
54+
assignAttributes(tabularModificationInfos);
5555
}
5656

5757
public TabularModificationsEntity(@NonNull TabularCreationInfos tabularCreationInfos) {
5858
super(tabularCreationInfos);
59-
assignCreationAttributes(tabularCreationInfos);
59+
assignAttributes(tabularCreationInfos);
6060
}
6161

6262
@Override
6363
public void update(ModificationInfos modificationInfos) {
6464
super.update(modificationInfos);
65-
if (modificationInfos.getType() == ModificationType.TABULAR_CREATION) {
66-
assignCreationAttributes((TabularCreationInfos) modificationInfos);
67-
} else {
68-
assignModificationAttributes((TabularModificationInfos) modificationInfos);
69-
}
65+
assignAttributes((TabularBaseInfos) modificationInfos);
7066
}
7167

7268
@Override
7369
public TabularBaseInfos toModificationInfos() {
74-
//throw new UnsupportedOperationException("DTO from tabular entity is build with optimized loadTabularModification()");
75-
// TODO DBR: should have no IF with a single DTO
76-
if (modificationType == ModificationType.TABULAR_CREATION) {
77-
List<ModificationInfos> creationsInfos = modifications.stream().map(ModificationEntity::toModificationInfos).collect(Collectors.toList());
78-
return TabularCreationInfos.builder()
79-
.date(getDate())
80-
.uuid(getId())
81-
.stashed(getStashed())
82-
.activated(getActivated())
83-
.creationType(modificationType)
84-
.creations(creationsInfos)
85-
.properties(CollectionUtils.isEmpty(getProperties()) ? null : getProperties().stream()
86-
.map(TabularPropertyEntity::toInfos)
87-
.toList())
88-
.csvFilename(getCsvFilename())
89-
.build();
90-
} else {
91-
List<ModificationInfos> modificationsInfos = modifications.stream().map(ModificationEntity::toModificationInfos).collect(Collectors.toList());
92-
return TabularModificationInfos.builder()
93-
.date(getDate())
94-
.uuid(getId())
95-
.stashed(getStashed())
96-
.activated(getActivated())
97-
.modificationType(modificationType)
98-
.modifications(modificationsInfos)
99-
.properties(CollectionUtils.isEmpty(getProperties()) ? null : getProperties().stream()
100-
.map(TabularPropertyEntity::toInfos)
101-
.toList())
102-
.csvFilename(getCsvFilename())
103-
.build();
104-
}
70+
var builder = switch (ModificationType.valueOf(getType())) {
71+
case ModificationType.TABULAR_CREATION -> TabularCreationInfos.builder();
72+
case ModificationType.LIMIT_SETS_TABULAR_MODIFICATION -> LimitSetsTabularModificationInfos.builder();
73+
default -> TabularModificationInfos.builder();
74+
};
75+
List<ModificationInfos> modificationsInfos = modifications.stream().map(ModificationEntity::toModificationInfos).collect(Collectors.toList());
76+
return builder
77+
.date(getDate())
78+
.uuid(getId())
79+
.stashed(getStashed())
80+
.activated(getActivated())
81+
.modificationType(modificationType)
82+
.modifications(modificationsInfos)
83+
.properties(CollectionUtils.isEmpty(getProperties()) ? null : getProperties().stream()
84+
.map(TabularPropertyEntity::toInfos)
85+
.toList())
86+
.csvFilename(getCsvFilename())
87+
.build();
10588
}
10689

107-
// TODO DBR: should have a single assign function with a single DTO
108-
private void assignCommonAttributes(TabularBaseInfos tabularBaseInfos) {
90+
private void assignAttributes(TabularBaseInfos tabularBaseInfos) {
91+
this.csvFilename = tabularBaseInfos.getCsvFilename();
92+
modificationType = tabularBaseInfos.getModificationType();
93+
// properties list
10994
List<TabularPropertyEntity> newProperties = tabularBaseInfos.getProperties() == null ? null :
11095
tabularBaseInfos.getProperties().stream()
11196
.map(TabularPropertyEntity::new)
@@ -118,34 +103,14 @@ private void assignCommonAttributes(TabularBaseInfos tabularBaseInfos) {
118103
} else {
119104
this.properties = newProperties;
120105
}
121-
this.csvFilename = tabularBaseInfos.getCsvFilename();
122-
}
123-
124-
private void assignModificationAttributes(TabularModificationInfos tabularModificationInfos) {
125-
assignCommonAttributes(tabularModificationInfos);
126-
modificationType = tabularModificationInfos.getModificationType();
106+
// modifications list
127107
if (modifications == null) {
128-
modifications = tabularModificationInfos.getModifications().stream()
108+
modifications = tabularBaseInfos.getModifications().stream()
129109
.map(ModificationEntity::fromDTO)
130110
.collect(Collectors.toList());
131111
} else {
132112
modifications.clear();
133-
modifications.addAll(tabularModificationInfos.getModifications().stream()
134-
.map(ModificationEntity::fromDTO)
135-
.toList());
136-
}
137-
}
138-
139-
private void assignCreationAttributes(TabularCreationInfos tabularCreationInfos) {
140-
assignCommonAttributes(tabularCreationInfos);
141-
modificationType = tabularCreationInfos.getCreationType();
142-
if (modifications == null) {
143-
modifications = tabularCreationInfos.getCreations().stream()
144-
.map(ModificationEntity::fromDTO)
145-
.toList();
146-
} else {
147-
modifications.clear();
148-
modifications.addAll(tabularCreationInfos.getCreations().stream()
113+
modifications.addAll(tabularBaseInfos.getModifications().stream()
149114
.map(ModificationEntity::fromDTO)
150115
.toList());
151116
}

src/main/java/org/gridsuite/modification/server/repositories/NetworkModificationRepository.java

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -380,37 +380,22 @@ private TabularBaseInfos loadTabularModification(TabularModificationsEntity tabu
380380
List<? extends EquipmentModificationEntity> modifications = loadTabularModificationSubEntities(subModificationsUuids, tabularEntity.getModificationType());
381381
// re-order the list of entities based on the ordered list of IDs
382382
List<EquipmentModificationEntity> orderedModifications = reorderModifications(modifications, subModificationsUuids);
383-
// then build DTO TODO DBR should have a single DTO
384-
if (ModificationType.TABULAR_CREATION.name().equalsIgnoreCase(tabularEntity.getType())) {
385-
return TabularCreationInfos.builder()
386-
.uuid(tabularEntity.getId())
387-
.date(tabularEntity.getDate())
388-
.stashed(tabularEntity.getStashed())
389-
.activated(tabularEntity.getActivated())
390-
.creationType(tabularEntity.getModificationType())
391-
.creations(orderedModifications.stream().map(ModificationEntity::toModificationInfos).toList())
392-
.properties(CollectionUtils.isEmpty(tabularEntity.getProperties()) ? null : tabularEntity.getProperties().stream()
393-
.map(TabularPropertyEntity::toInfos)
394-
.toList())
395-
.csvFilename(tabularEntity.getCsvFilename())
396-
.build();
397-
} else {
398-
var builder = TabularModificationInfos.builder();
399-
if (tabularEntity.getType().equals(ModificationType.LIMIT_SETS_TABULAR_MODIFICATION.name())) {
400-
builder = LimitSetsTabularModificationInfos.builder();
401-
}
402-
return builder.uuid(tabularEntity.getId())
403-
.date(tabularEntity.getDate())
404-
.stashed(tabularEntity.getStashed())
405-
.activated(tabularEntity.getActivated())
406-
.modificationType(tabularEntity.getModificationType())
407-
.modifications(orderedModifications.stream().map(ModificationEntity::toModificationInfos).toList())
408-
.properties(CollectionUtils.isEmpty(tabularEntity.getProperties()) ? null : tabularEntity.getProperties().stream()
409-
.map(TabularPropertyEntity::toInfos)
410-
.toList())
411-
.csvFilename(tabularEntity.getCsvFilename())
412-
.build();
413-
}
383+
var builder = switch (ModificationType.valueOf(tabularEntity.getType())) {
384+
case ModificationType.TABULAR_CREATION -> TabularCreationInfos.builder();
385+
case ModificationType.LIMIT_SETS_TABULAR_MODIFICATION -> LimitSetsTabularModificationInfos.builder();
386+
default -> TabularModificationInfos.builder();
387+
};
388+
return builder.uuid(tabularEntity.getId())
389+
.date(tabularEntity.getDate())
390+
.stashed(tabularEntity.getStashed())
391+
.activated(tabularEntity.getActivated())
392+
.modificationType(tabularEntity.getModificationType())
393+
.modifications(orderedModifications.stream().map(ModificationEntity::toModificationInfos).toList())
394+
.properties(CollectionUtils.isEmpty(tabularEntity.getProperties()) ? null : tabularEntity.getProperties().stream()
395+
.map(TabularPropertyEntity::toInfos)
396+
.toList())
397+
.csvFilename(tabularEntity.getCsvFilename())
398+
.build();
414399
}
415400

416401
public ModificationInfos getModificationInfos(ModificationEntity modificationEntity) {

src/test/java/org/gridsuite/modification/server/modifications/tabularcreations/TabularBatteryCreationsTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ protected ModificationInfos buildModification() {
5858
.build()
5959
);
6060
return TabularCreationInfos.builder()
61-
.creationType(ModificationType.BATTERY_CREATION)
62-
.creations(creations)
61+
.modificationType(ModificationType.BATTERY_CREATION)
62+
.modifications(creations)
6363
.properties(List.of(TabularPropertyInfos.builder().name("P1").predefined(true).selected(false).build()))
6464
.stashed(false)
6565
.build();
@@ -75,8 +75,8 @@ protected ModificationInfos buildModificationUpdate() {
7575
.build()
7676
);
7777
return TabularCreationInfos.builder()
78-
.creationType(ModificationType.BATTERY_CREATION)
79-
.creations(creations)
78+
.modificationType(ModificationType.BATTERY_CREATION)
79+
.modifications(creations)
8080
.properties(List.of(TabularPropertyInfos.builder().name("P1").predefined(true).selected(true).build()))
8181
.stashed(false)
8282
.build();

src/test/java/org/gridsuite/modification/server/modifications/tabularcreations/TabularGeneratorCreationsTest.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@
1717
import org.gridsuite.modification.dto.GeneratorCreationInfos;
1818
import org.gridsuite.modification.dto.ModificationInfos;
1919
import org.gridsuite.modification.dto.SubstationCreationInfos;
20-
import org.gridsuite.modification.dto.TabularCreationInfos;
20+
import org.gridsuite.modification.dto.tabular.*;
2121
import org.gridsuite.modification.server.dto.NetworkModificationsResult;
22-
import org.gridsuite.modification.dto.TabularPropertyInfos;
2322
import org.gridsuite.modification.server.impacts.AbstractBaseImpact;
2423
import org.gridsuite.modification.server.modifications.AbstractNetworkModificationTest;
2524
import org.gridsuite.modification.server.utils.NetworkCreation;
@@ -111,8 +110,8 @@ protected ModificationInfos buildModification() {
111110
.build()
112111
);
113112
return TabularCreationInfos.builder()
114-
.creationType(ModificationType.GENERATOR_CREATION)
115-
.creations(creations)
113+
.modificationType(ModificationType.GENERATOR_CREATION)
114+
.modifications(creations)
116115
.properties(List.of(TabularPropertyInfos.builder().name("P1").predefined(true).selected(true).build()))
117116
.stashed(false)
118117
.build();
@@ -145,8 +144,8 @@ protected ModificationInfos buildModificationUpdate() {
145144
.build()
146145
);
147146
return TabularCreationInfos.builder()
148-
.creationType(ModificationType.GENERATOR_CREATION)
149-
.creations(creations)
147+
.modificationType(ModificationType.GENERATOR_CREATION)
148+
.modifications(creations)
150149
.properties(List.of(TabularPropertyInfos.builder().name("P1").predefined(true).selected(false).build()))
151150
.stashed(false)
152151
.build();
@@ -202,8 +201,8 @@ void testCheckSqlRequestsCount() throws Exception {
202201
.build()
203202
);
204203
TabularCreationInfos creationInfos = TabularCreationInfos.builder()
205-
.creationType(ModificationType.GENERATOR_CREATION)
206-
.creations(creations)
204+
.modificationType(ModificationType.GENERATOR_CREATION)
205+
.modifications(creations)
207206
.build();
208207
modificationUuid = saveModification(creationInfos);
209208
reset();
@@ -249,8 +248,8 @@ void testAllModificationsHaveSucceeded() throws Exception {
249248
);
250249

251250
ModificationInfos creationInfos = TabularCreationInfos.builder()
252-
.creationType(ModificationType.GENERATOR_CREATION)
253-
.creations(creations)
251+
.modificationType(ModificationType.GENERATOR_CREATION)
252+
.modifications(creations)
254253
.build();
255254
String tabularCreationJson = getJsonBody(creationInfos, null);
256255

@@ -298,8 +297,8 @@ void testAllModificationsHaveFailed() throws Exception {
298297
.build()
299298
);
300299
ModificationInfos creationInfos = TabularCreationInfos.builder()
301-
.creationType(ModificationType.GENERATOR_CREATION)
302-
.creations(creations)
300+
.modificationType(ModificationType.GENERATOR_CREATION)
301+
.modifications(creations)
303302
.build();
304303
String tabularCreationJson = getJsonBody(creationInfos, null);
305304

@@ -335,8 +334,8 @@ void testUnsupportedTabularCreationType() throws Exception {
335334
.build()
336335
);
337336
ModificationInfos creationInfos = TabularCreationInfos.builder()
338-
.creationType(ModificationType.SUBSTATION_CREATION)
339-
.creations(creations)
337+
.modificationType(ModificationType.SUBSTATION_CREATION)
338+
.modifications(creations)
340339
.build();
341340
String tabularCreationJson = getJsonBody(creationInfos, null);
342341

src/test/java/org/gridsuite/modification/server/modifications/tabularcreations/TabularLoadCreationsTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
import org.gridsuite.modification.dto.FreePropertyInfos;
1515
import org.gridsuite.modification.dto.LoadCreationInfos;
1616
import org.gridsuite.modification.dto.ModificationInfos;
17-
import org.gridsuite.modification.dto.TabularCreationInfos;
18-
import org.gridsuite.modification.dto.TabularPropertyInfos;
17+
import org.gridsuite.modification.dto.tabular.*;
1918
import org.gridsuite.modification.server.modifications.AbstractNetworkModificationTest;
2019
import org.gridsuite.modification.server.utils.NetworkCreation;
2120
import org.junit.jupiter.api.Tag;
@@ -57,8 +56,8 @@ protected ModificationInfos buildModification() {
5756
.build()
5857
);
5958
return TabularCreationInfos.builder()
60-
.creationType(ModificationType.LOAD_CREATION)
61-
.creations(creations)
59+
.modificationType(ModificationType.LOAD_CREATION)
60+
.modifications(creations)
6261
.properties(List.of(TabularPropertyInfos.builder().name("P1").predefined(true).selected(true).build()))
6362
.stashed(false)
6463
.build();
@@ -76,8 +75,8 @@ protected ModificationInfos buildModificationUpdate() {
7675
.build()
7776
);
7877
return TabularCreationInfos.builder()
79-
.creationType(ModificationType.LOAD_CREATION)
80-
.creations(creations)
78+
.modificationType(ModificationType.LOAD_CREATION)
79+
.modifications(creations)
8180
.properties(List.of(TabularPropertyInfos.builder().name("P1").predefined(true).selected(false).build()))
8281
.stashed(false)
8382
.build();

src/test/java/org/gridsuite/modification/server/modifications/tabularcreations/TabularShuntCompensatorCreationsTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
import org.gridsuite.modification.dto.FreePropertyInfos;
1414
import org.gridsuite.modification.dto.ModificationInfos;
1515
import org.gridsuite.modification.dto.ShuntCompensatorCreationInfos;
16-
import org.gridsuite.modification.dto.TabularCreationInfos;
17-
import org.gridsuite.modification.dto.TabularPropertyInfos;
16+
import org.gridsuite.modification.dto.tabular.*;
1817
import org.gridsuite.modification.server.modifications.AbstractNetworkModificationTest;
1918
import org.gridsuite.modification.server.utils.NetworkCreation;
2019
import org.junit.jupiter.api.Tag;
@@ -60,8 +59,8 @@ protected ModificationInfos buildModification() {
6059
.build()
6160
);
6261
return TabularCreationInfos.builder()
63-
.creationType(ModificationType.SHUNT_COMPENSATOR_CREATION)
64-
.creations(creations)
62+
.modificationType(ModificationType.SHUNT_COMPENSATOR_CREATION)
63+
.modifications(creations)
6564
.properties(List.of(TabularPropertyInfos.builder().name("P1").predefined(true).selected(true).build()))
6665
.stashed(false)
6766
.build();
@@ -81,8 +80,8 @@ protected ModificationInfos buildModificationUpdate() {
8180
.build()
8281
);
8382
return TabularCreationInfos.builder()
84-
.creationType(ModificationType.SHUNT_COMPENSATOR_CREATION)
85-
.creations(creations)
83+
.modificationType(ModificationType.SHUNT_COMPENSATOR_CREATION)
84+
.modifications(creations)
8685
.properties(List.of(TabularPropertyInfos.builder().name("P1").predefined(true).selected(false).build()))
8786
.stashed(false)
8887
.build();

src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularBatteryModificationsTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import com.powsybl.iidm.network.Network;
1111
import org.gridsuite.modification.ModificationType;
1212
import org.gridsuite.modification.dto.*;
13+
import org.gridsuite.modification.dto.tabular.TabularModificationInfos;
14+
import org.gridsuite.modification.dto.tabular.TabularPropertyInfos;
1315
import org.gridsuite.modification.server.modifications.AbstractNetworkModificationTest;
1416
import org.gridsuite.modification.server.utils.NetworkCreation;
1517
import org.junit.jupiter.api.Tag;

src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularGeneratorModificationsTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import com.powsybl.iidm.network.extensions.ConnectablePosition;
1313
import org.gridsuite.modification.ModificationType;
1414
import org.gridsuite.modification.dto.*;
15+
import org.gridsuite.modification.dto.tabular.TabularModificationInfos;
16+
import org.gridsuite.modification.dto.tabular.TabularPropertyInfos;
1517
import org.gridsuite.modification.server.dto.NetworkModificationsResult;
1618
import org.gridsuite.modification.server.modifications.AbstractNetworkModificationTest;
1719
import org.gridsuite.modification.server.repositories.ModificationRepository;

src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import com.powsybl.iidm.network.Network;
1111
import org.gridsuite.modification.ModificationType;
1212
import org.gridsuite.modification.dto.*;
13+
import org.gridsuite.modification.dto.tabular.TabularModificationInfos;
14+
import org.gridsuite.modification.dto.tabular.TabularPropertyInfos;
1315
import org.gridsuite.modification.server.modifications.AbstractNetworkModificationTest;
1416
import org.gridsuite.modification.server.repositories.ModificationRepository;
1517
import org.gridsuite.modification.server.utils.ApiUtils;

0 commit comments

Comments
 (0)