Skip to content

Commit 0716349

Browse files
authored
Use a common dto and apply for tabular modifications (#101)
Signed-off-by: David BRAQUART <[email protected]>
1 parent 582c36f commit 0716349

26 files changed

+370
-401
lines changed

src/main/java/org/gridsuite/modification/dto/ModificationInfos.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
import org.gridsuite.modification.ModificationType;
1818
import org.gridsuite.modification.NetworkModificationException;
1919
import org.gridsuite.modification.dto.annotation.ModificationErrorTypeName;
20+
import org.gridsuite.modification.dto.tabular.LimitSetsTabularModificationInfos;
21+
import org.gridsuite.modification.dto.tabular.TabularCreationInfos;
22+
import org.gridsuite.modification.dto.tabular.TabularModificationInfos;
2023
import org.gridsuite.modification.modifications.AbstractModification;
2124

2225
import java.time.Instant;

src/main/java/org/gridsuite/modification/dto/TabularBaseInfos.java

Lines changed: 0 additions & 36 deletions
This file was deleted.

src/main/java/org/gridsuite/modification/dto/LimitSetsTabularModificationInfos.java renamed to src/main/java/org/gridsuite/modification/dto/tabular/LimitSetsTabularModificationInfos.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,25 @@
44
* License, v. 2.0. If a copy of the MPL was not distributed with this
55
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
66
*/
7-
package org.gridsuite.modification.dto;
7+
package org.gridsuite.modification.dto.tabular;
88

99
import com.fasterxml.jackson.annotation.JsonTypeName;
1010
import io.swagger.v3.oas.annotations.media.Schema;
1111
import lombok.Data;
12+
import lombok.EqualsAndHashCode;
1213
import lombok.NoArgsConstructor;
1314
import lombok.experimental.SuperBuilder;
1415
import org.gridsuite.modification.dto.annotation.ModificationErrorTypeName;
15-
import org.gridsuite.modification.modifications.AbstractModification;
16-
import org.gridsuite.modification.modifications.TabularModification;
1716

1817
/**
1918
* @author Hugo Marcellin <hugo.marcelin at rte-france.com>
2019
*/
21-
20+
@EqualsAndHashCode(callSuper = true)
2221
@SuperBuilder
2322
@NoArgsConstructor
2423
@Data
2524
@Schema(description = "Limit sets tabular modification")
2625
@JsonTypeName("LIMIT_SETS_TABULAR_MODIFICATION")
2726
@ModificationErrorTypeName("LIMIT_SETS_TABULAR_MODIFICATION_ERROR")
2827
public class LimitSetsTabularModificationInfos extends TabularModificationInfos {
29-
@Override
30-
public AbstractModification toModification() {
31-
return new TabularModification(this);
32-
}
3328
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*
2+
Copyright (c) 2025, RTE (http://www.rte-france.com)
3+
This Source Code Form is subject to the terms of the Mozilla Public
4+
License, v. 2.0. If a copy of the MPL was not distributed with this
5+
file, You can obtain one at http://mozilla.org/MPL/2.0/.
6+
*/
7+
package org.gridsuite.modification.dto.tabular;
8+
9+
import com.fasterxml.jackson.annotation.JsonInclude;
10+
import io.swagger.v3.oas.annotations.media.Schema;
11+
import lombok.Data;
12+
import lombok.EqualsAndHashCode;
13+
import lombok.NoArgsConstructor;
14+
import lombok.experimental.SuperBuilder;
15+
import org.gridsuite.modification.ModificationType;
16+
import org.gridsuite.modification.dto.ModificationInfos;
17+
import org.springframework.lang.NonNull;
18+
19+
import java.util.List;
20+
21+
/**
22+
* @author David Braquart <david.braquart_externe at rte-france.com>
23+
*/
24+
@SuperBuilder
25+
@NoArgsConstructor
26+
@EqualsAndHashCode(callSuper = true)
27+
@Data
28+
@Schema(description = "Tabular abstract modification")
29+
public class TabularBaseInfos extends ModificationInfos {
30+
31+
@Schema(description = "additional properties")
32+
@JsonInclude(JsonInclude.Include.NON_NULL)
33+
private List<TabularPropertyInfos> properties;
34+
35+
@Schema(description = "csv file name")
36+
private String csvFilename;
37+
38+
@Schema(description = "Modification type")
39+
@NonNull
40+
private ModificationType modificationType;
41+
42+
@Schema(description = "modifications")
43+
@JsonInclude(JsonInclude.Include.NON_NULL)
44+
private List<ModificationInfos> modifications;
45+
46+
public String formatEquipmentTypeName() {
47+
return switch (getModificationType()) {
48+
case GENERATOR_CREATION, GENERATOR_MODIFICATION -> getModifications().size() > 1 ? "generators" : "generator";
49+
case LOAD_CREATION, LOAD_MODIFICATION -> getModifications().size() > 1 ? "loads" : "load";
50+
case SHUNT_COMPENSATOR_CREATION, SHUNT_COMPENSATOR_MODIFICATION -> getModifications().size() > 1 ? "shunt compensators" : "shunt compensator";
51+
case BATTERY_CREATION, BATTERY_MODIFICATION -> getModifications().size() > 1 ? "batteries" : "battery";
52+
case TWO_WINDINGS_TRANSFORMER_MODIFICATION -> getModifications().size() > 1 ? "two windings transformers" : "two windings transformer";
53+
case VOLTAGE_LEVEL_MODIFICATION -> getModifications().size() > 1 ? "voltage levels" : "voltage level";
54+
case LINE_MODIFICATION -> getModifications().size() > 1 ? "lines" : "line";
55+
case SUBSTATION_MODIFICATION -> getModifications().size() > 1 ? "substations" : "substation";
56+
default -> "equipments of unknown type";
57+
};
58+
}
59+
}

src/main/java/org/gridsuite/modification/dto/TabularCreationInfos.java renamed to src/main/java/org/gridsuite/modification/dto/tabular/TabularCreationInfos.java

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,20 @@
44
License, v. 2.0. If a copy of the MPL was not distributed with this
55
file, You can obtain one at http://mozilla.org/MPL/2.0/.
66
*/
7-
package org.gridsuite.modification.dto;
7+
package org.gridsuite.modification.dto.tabular;
88

9-
import com.fasterxml.jackson.annotation.JsonInclude;
109
import com.fasterxml.jackson.annotation.JsonTypeName;
1110
import com.powsybl.commons.report.ReportNode;
1211
import io.swagger.v3.oas.annotations.media.Schema;
1312
import lombok.Data;
1413
import lombok.EqualsAndHashCode;
1514
import lombok.NoArgsConstructor;
1615
import lombok.experimental.SuperBuilder;
17-
import org.gridsuite.modification.ModificationType;
1816
import org.gridsuite.modification.dto.annotation.ModificationErrorTypeName;
1917
import org.gridsuite.modification.modifications.AbstractModification;
20-
import org.gridsuite.modification.modifications.TabularCreation;
21-
import org.springframework.lang.NonNull;
18+
import org.gridsuite.modification.modifications.tabular.TabularCreation;
2219

2320
import java.util.HashMap;
24-
import java.util.List;
2521
import java.util.Map;
2622

2723
/**
@@ -36,29 +32,11 @@
3632
@ModificationErrorTypeName("TABULAR_CREATION_ERROR")
3733
public class TabularCreationInfos extends TabularBaseInfos {
3834

39-
@Schema(description = "Creation type")
40-
@NonNull
41-
private ModificationType creationType;
42-
43-
@Schema(description = "Creations")
44-
@JsonInclude(JsonInclude.Include.NON_NULL)
45-
private List<ModificationInfos> creations;
46-
4735
@Override
4836
public AbstractModification toModification() {
4937
return new TabularCreation(this);
5038
}
5139

52-
public String formatEquipmentTypeName() {
53-
return switch (getCreationType()) {
54-
case GENERATOR_CREATION -> getCreations().size() > 1 ? "generators" : "generator";
55-
case LOAD_CREATION -> getCreations().size() > 1 ? "loads" : "load";
56-
case SHUNT_COMPENSATOR_CREATION -> getCreations().size() > 1 ? "shunt compensators" : "shunt compensator";
57-
case BATTERY_CREATION -> getCreations().size() > 1 ? "batteries" : "battery";
58-
default -> "equipments of unknown type";
59-
};
60-
}
61-
6240
@Override
6341
public ReportNode createSubReportNode(ReportNode reportNode) {
6442
return reportNode.newReportNode()
@@ -70,7 +48,7 @@ public ReportNode createSubReportNode(ReportNode reportNode) {
7048
@Override
7149
public Map<String, String> getMapMessageValues() {
7250
Map<String, String> mapMessageValues = new HashMap<>();
73-
mapMessageValues.put("tabularCreationType", getCreationType().name());
51+
mapMessageValues.put("tabularCreationType", getModificationType().name());
7452
return mapMessageValues;
7553
}
7654
}

src/main/java/org/gridsuite/modification/dto/TabularModificationInfos.java renamed to src/main/java/org/gridsuite/modification/dto/tabular/TabularModificationInfos.java

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,63 +4,37 @@
44
License, v. 2.0. If a copy of the MPL was not distributed with this
55
file, You can obtain one at http://mozilla.org/MPL/2.0/.
66
*/
7-
package org.gridsuite.modification.dto;
7+
package org.gridsuite.modification.dto.tabular;
88

9-
import com.fasterxml.jackson.annotation.JsonInclude;
109
import com.fasterxml.jackson.annotation.JsonTypeName;
1110
import com.powsybl.commons.report.ReportNode;
1211
import lombok.*;
13-
import org.gridsuite.modification.ModificationType;
1412
import org.gridsuite.modification.dto.annotation.ModificationErrorTypeName;
1513
import org.gridsuite.modification.modifications.AbstractModification;
16-
import org.gridsuite.modification.modifications.TabularModification;
17-
import org.springframework.lang.NonNull;
14+
import org.gridsuite.modification.modifications.tabular.TabularModification;
1815

1916
import io.swagger.v3.oas.annotations.media.Schema;
2017
import lombok.experimental.SuperBuilder;
2118

2219
import java.util.HashMap;
23-
import java.util.List;
2420
import java.util.Map;
2521

2622
/**
2723
* @author Etienne Homer <etienne.homer at rte-france.com>
2824
*/
25+
@EqualsAndHashCode(callSuper = true)
2926
@SuperBuilder
3027
@NoArgsConstructor
3128
@Data
3229
@Schema(description = "Tabular modification")
3330
@JsonTypeName("TABULAR_MODIFICATION")
3431
@ModificationErrorTypeName("TABULAR_MODIFICATION_ERROR")
3532
public class TabularModificationInfos extends TabularBaseInfos {
36-
37-
@Schema(description = "Modification type")
38-
@NonNull
39-
private ModificationType modificationType;
40-
41-
@Schema(description = "modifications")
42-
@JsonInclude(JsonInclude.Include.NON_NULL)
43-
private List<ModificationInfos> modifications;
44-
4533
@Override
4634
public AbstractModification toModification() {
4735
return new TabularModification(this);
4836
}
4937

50-
public String formatEquipmentTypeName() {
51-
return switch (getModificationType()) {
52-
case GENERATOR_MODIFICATION -> getModifications().size() > 1 ? "generators" : "generator";
53-
case LOAD_MODIFICATION -> getModifications().size() > 1 ? "loads" : "load";
54-
case TWO_WINDINGS_TRANSFORMER_MODIFICATION -> getModifications().size() > 1 ? "two windings transformers" : "two windings transformer";
55-
case BATTERY_MODIFICATION -> getModifications().size() > 1 ? "batteries" : "battery";
56-
case VOLTAGE_LEVEL_MODIFICATION -> getModifications().size() > 1 ? "voltage levels" : "voltage level";
57-
case SHUNT_COMPENSATOR_MODIFICATION -> getModifications().size() > 1 ? "shunt compensators" : "shunt compensator";
58-
case LINE_MODIFICATION -> getModifications().size() > 1 ? "lines" : "line";
59-
case SUBSTATION_MODIFICATION -> getModifications().size() > 1 ? "substations" : "substation";
60-
default -> "equipments of unknown type";
61-
};
62-
}
63-
6438
@Override
6539
public ReportNode createSubReportNode(ReportNode reportNode) {
6640
return reportNode.newReportNode()

src/main/java/org/gridsuite/modification/dto/TabularPropertyInfos.java renamed to src/main/java/org/gridsuite/modification/dto/tabular/TabularPropertyInfos.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* License, v. 2.0. If a copy of the MPL was not distributed with this
55
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
66
*/
7-
package org.gridsuite.modification.dto;
7+
package org.gridsuite.modification.dto.tabular;
88

99
import com.fasterxml.jackson.annotation.JsonInclude;
1010
import io.swagger.v3.oas.annotations.media.Schema;

0 commit comments

Comments
 (0)