Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

import com.powsybl.commons.report.ReportNode;
import com.powsybl.iidm.modification.topology.CreateCouplingDeviceBuilder;
import com.powsybl.iidm.modification.topology.DefaultNamingStrategy;
import com.powsybl.iidm.modification.topology.NamingStrategy;
import com.powsybl.iidm.network.Network;
import org.gridsuite.modification.ModificationType;
import org.gridsuite.modification.dto.CreateCouplingDeviceInfos;
Expand All @@ -28,11 +30,16 @@ public CreateCouplingDevice(CreateCouplingDeviceInfos createCouplingDeviceInfos)
* @param subReportNode
*/
@Override
public void apply(Network network, ReportNode subReportNode) {
public void apply(Network network, NamingStrategy namingStrategy, ReportNode subReportNode) {
new CreateCouplingDeviceBuilder()
.withBusOrBusbarSectionId1(createCouplingDeviceInfos.getCouplingDeviceInfos().getBusbarSectionId1())
.withBusOrBusbarSectionId2(createCouplingDeviceInfos.getCouplingDeviceInfos().getBusbarSectionId2())
.build().apply(network, false, subReportNode);
.build().apply(network, namingStrategy, subReportNode);
}

@Override
public void apply(Network network, ReportNode subReportNode) {
apply(network, new DefaultNamingStrategy(), subReportNode);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import com.powsybl.commons.report.TypedValue;
import com.powsybl.iidm.modification.topology.CreateVoltageLevelSections;
import com.powsybl.iidm.modification.topology.CreateVoltageLevelSectionsBuilder;
import com.powsybl.iidm.modification.topology.DefaultNamingStrategy;
import com.powsybl.iidm.modification.topology.NamingStrategy;
import com.powsybl.iidm.network.BusbarSection;
import com.powsybl.iidm.network.Network;
import com.powsybl.iidm.network.SwitchKind;
Expand Down Expand Up @@ -66,6 +68,11 @@ public void check(Network network) throws NetworkModificationException {

@Override
public void apply(Network network, ReportNode subReportNode) {
apply(network, new DefaultNamingStrategy(), subReportNode);
}

@Override
public void apply(Network network, NamingStrategy namingStrategy, ReportNode subReportNode) {
VoltageLevel voltageLevel = network.getVoltageLevel(modificationInfos.getVoltageLevelId());
BusbarSection busbarSection = network.getBusbarSection(modificationInfos.getBusbarSectionId());
List<String> busBarIds = new ArrayList<>();
Expand All @@ -80,7 +87,7 @@ public void apply(Network network, ReportNode subReportNode) {
.withSwitchPrefixId(voltageLevel.getId())
.withBusbarSectionPrefixId(voltageLevel.getId())
.build();
modification.apply(network, true, subReportNode);
modification.apply(network, namingStrategy, true, subReportNode);

if (modificationInfos.isAllBusbars()) {
List<BusbarSection> newBusbarSections = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@

import com.powsybl.commons.PowsyblException;
import com.powsybl.commons.report.ReportNode;
import com.powsybl.iidm.modification.topology.DefaultNamingStrategy;
import com.powsybl.iidm.modification.topology.MoveFeederBayBuilder;
import com.powsybl.iidm.modification.topology.NamingStrategy;
import com.powsybl.iidm.network.*;
import com.powsybl.iidm.network.extensions.BusbarSectionPosition;
import org.gridsuite.modification.ModificationType;
Expand Down Expand Up @@ -53,20 +55,25 @@ public void check(Network network) {

@Override
public void apply(Network network, ReportNode subReportNode) {
apply(network, new DefaultNamingStrategy(), subReportNode);
}

@Override
public void apply(Network network, NamingStrategy namingStrategy, ReportNode subReportNode) {
VoltageLevel voltageLevel = network.getVoltageLevel(createVoltageLevelTopologyInfos.getVoltageLevelId());
createVoltageLevelBusBarSection(network, subReportNode, voltageLevel);
createVoltageLevelBusBarSection(network, namingStrategy, subReportNode, voltageLevel);
moveConnectableToAddSwitchesOnTheNewBar(network, voltageLevel);
}

private void createVoltageLevelBusBarSection(Network network, ReportNode subReportNode, VoltageLevel voltageLevel) {
private void createVoltageLevelBusBarSection(Network network, NamingStrategy namingStrategy, ReportNode subReportNode, VoltageLevel voltageLevel) {
int lowBusOrBusbarIndex = findLowBusOrBusbarIndex(voltageLevel);
new com.powsybl.iidm.modification.topology.CreateVoltageLevelTopologyBuilder()
.withVoltageLevelId(createVoltageLevelTopologyInfos.getVoltageLevelId())
.withSectionCount(createVoltageLevelTopologyInfos.getSectionCount())
.withAlignedBusesOrBusbarCount(1)
.withLowBusOrBusbarIndex(lowBusOrBusbarIndex)
.withSwitchKinds(createVoltageLevelTopologyInfos.getSwitchKinds())
.build().apply(network, true, subReportNode);
.build().apply(network, namingStrategy, true, subReportNode);
}

private void moveConnectableToAddSwitchesOnTheNewBar(Network network, VoltageLevel voltageLevel) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.gridsuite.modification.dto.CouplingDeviceInfos;
import org.gridsuite.modification.dto.CreateCouplingDeviceInfos;
import org.gridsuite.modification.dto.ModificationInfos;
import org.gridsuite.modification.utils.DummyNamingStrategy;
import org.gridsuite.modification.utils.NetworkWithTeePoint;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -92,4 +93,22 @@ void testCreateCouplingDeviceFail() {
Assertions.assertEquals("core.iidm.modification.unexpectedDifferentVoltageLevels", report.getChildren().getFirst().getMessageKey());
}

@Test
void testApplyWithNamingStrategy() {
CreateCouplingDeviceInfos createCouplingDeviceInfos = CreateCouplingDeviceInfos.builder()
.stashed(false)
.voltageLevelId("v1")
.couplingDeviceInfos(CouplingDeviceInfos.builder()
.busbarSectionId1("bbs1")
.busbarSectionId2("bbs5")
.build())
.build();
Network network = getNetwork();
AbstractModification modification = createCouplingDeviceInfos.toModification();
ReportNode report = ReportNode.newRootReportNode()
.withMessageTemplate("test")
.build();
Assertions.assertDoesNotThrow(() -> modification.apply(network, new DummyNamingStrategy(), report));
Assertions.assertNotNull(network.getSwitch("SWITCH_bbs1_bbs5"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@
import org.gridsuite.modification.NetworkModificationException;
import org.gridsuite.modification.dto.CreateVoltageLevelSectionInfos;
import org.gridsuite.modification.dto.ModificationInfos;
import org.gridsuite.modification.utils.DummyNamingStrategy;
import org.gridsuite.modification.utils.NetworkWithTeePoint;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.util.*;
Expand Down Expand Up @@ -133,4 +135,31 @@ void testCreateModificationWithAllBusbars() {
assertEquals(7, busBarIds.size());
assertTrue(busBarIds.containsAll(List.of("bbs1", "bbs2", "bbs3", "bbs4", "bbs1_2", "v1_0_1", "v1_1_1")));
}

@Test
void testApplyWithNamingStrategy() {
Network network = getNetwork();
VoltageLevel voltageLevel = network.getVoltageLevel("v1");
var bbs = voltageLevel.getNodeBreakerView().newBusbarSection()
.setId("bbs1_2")
.setName("bbs1_2")
.setNode(1)
.add();
bbs.newExtension(BusbarSectionPositionAdder.class).withBusbarIndex(1).withSectionIndex(0).add();

ReportNode report = ReportNode.newRootReportNode()
.withMessageTemplate("test")
.build();
CreateVoltageLevelSectionInfos.builder()
.stashed(false)
.voltageLevelId("v1")
.busbarSectionId("bbs1_2")
.busbarIndex(2)
.isAfterBusbarSectionId(true)
.leftSwitchKind("BREAKER")
.rightSwitchKind("DISCONNECTOR")
.isAllBusbars(false)
.build().toModification().apply(network, new DummyNamingStrategy(), report);
Assertions.assertNotNull(network.getSwitch("DISCONNECTOR_1_7"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,17 @@
package org.gridsuite.modification.modifications;

import com.fasterxml.jackson.core.type.TypeReference;
import com.powsybl.commons.report.ReportNode;
import com.powsybl.iidm.network.Network;
import com.powsybl.iidm.network.Switch;
import com.powsybl.iidm.network.SwitchKind;
import org.gridsuite.modification.NetworkModificationException;
import org.gridsuite.modification.dto.CreateVoltageLevelTopologyInfos;
import org.gridsuite.modification.dto.ModificationInfos;
import org.gridsuite.modification.utils.DummyNamingStrategy;
import org.gridsuite.modification.utils.NetworkWithTeePoint;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.util.*;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -80,4 +83,19 @@ protected void testCreationModificationMessage(ModificationInfos modificationInf
});
assertEquals("v1", updatedValues.get("voltageLevelId"));
}

@Test
void testApplyWithNamingStrategy() {
Network network = getNetwork();
ReportNode report = ReportNode.newRootReportNode()
.withMessageTemplate("test")
.build();
CreateVoltageLevelTopologyInfos.builder()
.stashed(false)
.voltageLevelId("v1")
.sectionCount(3)
.switchKinds(List.of(SwitchKind.BREAKER, SwitchKind.DISCONNECTOR))
.build().toModification().apply(network, new DummyNamingStrategy(), report);
Assertions.assertNotNull(network.getBusbarSection("BUSBAR_1_1"));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package org.gridsuite.modification.utils;

import com.google.auto.service.AutoService;
import com.powsybl.iidm.modification.topology.NamingStrategy;
import com.powsybl.iidm.network.*;

import java.util.List;

/**
* @author Etienne Homer {@literal <etienne.homer at rte-france.com>}
*/
@AutoService(NamingStrategy.class)
public class DummyNamingStrategy implements NamingStrategy {

@Override
public final String getName() {
return "Dummy naming strategy";
}

@Override
public String getSectioningPrefix(String baseId, BusbarSection bbs, int busBarNum, int section1Num, int section2Num) {
return "SECTION_" + busBarNum + "_" + section1Num + "_" + section2Num;
}

@Override
public String getChunkPrefix(String baseId, List<SwitchKind> switchKindList, int busBarNum, int section1Num, int section2Num) {
return "PREFIX_" + busBarNum + "_" + section1Num + "_" + section2Num;
}

@Override
public final String getDisconnectorId(String baseId, int id1Num, int id2Num) {
return "DISCONNECTOR_" + id1Num + "_" + id2Num;
}

@Override
public String getDisconnectorId(BusbarSection bbs, String baseId, int id1Num, int id2Num, int side) {
return "DISCONNECTOR_" + id1Num + "_" + id2Num + "_" + side;
}

@Override
public String getDisconnectorBetweenChunksId(BusbarSection bbs, String baseId, int id1Num, int id2Num) {
return "DISCONNECTOR_" + id1Num + "_" + id2Num;
}

@Override
public final String getBreakerId(String baseId) {
return baseId;
}

@Override
public final String getBreakerId(String baseId, int id1Num, int id2Num) {
return "BREAKER_" + id1Num + "_" + id1Num;
}

@Override
public final String getSwitchId(String baseId) {
return baseId;
}

@Override
public final String getSwitchId(String baseId, int idNum) {
return "SWITCH_" + idNum;
}

@Override
public final String getSwitchId(String baseId, int id1Num, int id2Num) {
return "SWITCH_" + id1Num + "_" + id2Num;
}

@Override
public final String getBusbarId(String baseId, int id1Num, int id2Num) {
return "BUSBAR_" + id1Num + "_" + id2Num;
}

@Override
public final String getBusbarId(String baseId, List<SwitchKind> switchKindList, int id1Num, int id2Num) {
return "BUSBAR_" + id1Num + "_" + id2Num;
}

@Override
public final String getBusId(String baseId) {
return baseId;
}

@Override
public final String getSwitchBaseId(Connectable<?> connectable, int side) {
return "SWITCH_" + connectable.getId() + "_" + side;
}

@Override
public String getSwitchBaseId(VoltageLevel voltageLevel, BusbarSection bbs1, BusbarSection bbs2) {
return "SWITCH_" + bbs1.getId() + "_" + bbs2.getId();
}
}