From 7c80c5e2213f291194b07ce5674e663899ac1d97 Mon Sep 17 00:00:00 2001 From: Etienne Homer Date: Wed, 26 Nov 2025 14:40:42 +0100 Subject: [PATCH] Voltage level creation with naming strategy Signed-off-by: Etienne Homer --- .../modifications/VoltageLevelCreation.java | 9 ++++++++- .../modification/utils/ModificationUtils.java | 9 +++++++-- .../VoltageLevelCreationTest.java | 20 +++++++++++++++---- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/modifications/VoltageLevelCreation.java b/src/main/java/org/gridsuite/modification/modifications/VoltageLevelCreation.java index c74b96bb..1a730d10 100644 --- a/src/main/java/org/gridsuite/modification/modifications/VoltageLevelCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/VoltageLevelCreation.java @@ -7,6 +7,8 @@ package org.gridsuite.modification.modifications; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.topology.DefaultNamingStrategy; +import com.powsybl.iidm.modification.topology.NamingStrategy; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.VoltageLevel; import org.gridsuite.modification.NetworkModificationException; @@ -39,7 +41,12 @@ public void check(Network network) throws NetworkModificationException { @Override public void apply(Network network, ReportNode subReportNode) { - ModificationUtils.getInstance().createVoltageLevel(modificationInfos, subReportNode, network); + apply(network, new DefaultNamingStrategy(), subReportNode); + } + + @Override + public void apply(Network network, NamingStrategy namingStrategy, ReportNode subReportNode) { + ModificationUtils.getInstance().createVoltageLevel(modificationInfos, subReportNode, network, namingStrategy); // properties VoltageLevel voltageLevel = network.getVoltageLevel(modificationInfos.getEquipmentId()); PropertiesUtils.applyProperties(voltageLevel, subReportNode, modificationInfos.getProperties(), "network.modification.VlProperties"); diff --git a/src/main/java/org/gridsuite/modification/utils/ModificationUtils.java b/src/main/java/org/gridsuite/modification/utils/ModificationUtils.java index 5e1bb3c5..4558fb83 100644 --- a/src/main/java/org/gridsuite/modification/utils/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/utils/ModificationUtils.java @@ -375,6 +375,11 @@ public void createSubstation(SubstationCreationInfos substationCreationInfos, public void createVoltageLevel(VoltageLevelCreationInfos voltageLevelCreationInfos, ReportNode subReportNode, Network network) { + createVoltageLevel(voltageLevelCreationInfos, subReportNode, network, new DefaultNamingStrategy()); + } + + public void createVoltageLevel(VoltageLevelCreationInfos voltageLevelCreationInfos, + ReportNode subReportNode, Network network, NamingStrategy namingStrategy) { String substationId = voltageLevelCreationInfos.getSubstationId(); SubstationCreationInfos substationCreation = voltageLevelCreationInfos.getSubstationCreation(); Substation substation; @@ -423,7 +428,7 @@ public void createVoltageLevel(VoltageLevelCreationInfos voltageLevelCreationInf .withAlignedBusesOrBusbarCount(voltageLevelCreationInfos.getBusbarCount()) .withSectionCount(voltageLevelCreationInfos.getSectionCount()) .withSwitchKinds(voltageLevelCreationInfos.getSwitchKinds()) - .build().apply(network); + .build().apply(network, namingStrategy); voltageLevelCreationInfos.getCouplingDevices().forEach(couplingDevice -> { if (!checkBbs(network, couplingDevice.getBusbarSectionId1(), couplingDevice.getBusbarSectionId2(), subReportNode)) { @@ -433,7 +438,7 @@ public void createVoltageLevel(VoltageLevelCreationInfos voltageLevelCreationInf couplingDeviceBuilder.withBusOrBusbarSectionId1(couplingDevice.getBusbarSectionId1()) .withBusOrBusbarSectionId2(couplingDevice.getBusbarSectionId2()) .withSwitchPrefixId(voltageLevelCreationInfos.getEquipmentId() + "_COUPL") - .build().apply(network, subReportNode); + .build().apply(network, namingStrategy, subReportNode); }); subReportNode.newReportNode() diff --git a/src/test/java/org/gridsuite/modification/modifications/VoltageLevelCreationTest.java b/src/test/java/org/gridsuite/modification/modifications/VoltageLevelCreationTest.java index 991f45e8..ba64f6cd 100644 --- a/src/test/java/org/gridsuite/modification/modifications/VoltageLevelCreationTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/VoltageLevelCreationTest.java @@ -7,15 +7,15 @@ package org.gridsuite.modification.modifications; import com.fasterxml.jackson.core.type.TypeReference; +import com.powsybl.commons.report.ReportNode; import com.powsybl.iidm.network.Country; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.NetworkModificationException; -import org.gridsuite.modification.dto.FreePropertyInfos; -import org.gridsuite.modification.dto.ModificationInfos; -import org.gridsuite.modification.dto.SubstationCreationInfos; -import org.gridsuite.modification.dto.VoltageLevelCreationInfos; +import org.gridsuite.modification.dto.*; +import org.gridsuite.modification.utils.DummyNamingStrategy; import org.gridsuite.modification.utils.ModificationCreation; import org.gridsuite.modification.utils.NetworkCreation; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import java.util.List; @@ -207,4 +207,16 @@ protected void testCreationModificationMessage(ModificationInfos modificationInf Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); assertEquals("vlId", createdValues.get("equipmentId")); } + + @Test + void testApplyWithNamingStrategy() { + Network network = getNetwork(); + ReportNode report = ReportNode.newRootReportNode() + .withMessageTemplate("test") + .build(); + ModificationCreation.getCreationVoltageLevel("s2", "vlId", "vlName") + .toModification().apply(network, new DummyNamingStrategy(), report); + Assertions.assertNotNull(network.getBusbarSection("BUSBAR_1_1")); + Assertions.assertNotNull(network.getSwitch("DISCONNECTOR_1_5")); + } }