From c64771c549e43f35ef72e5fd84572ab813db7c2a Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Mon, 14 Oct 2024 18:14:37 +0200 Subject: [PATCH 01/11] retreive busBarSectionId and VoltageId not set in modification connectivity --- .../BusbarSectionFinderTraverser.java | 48 ++++++++++++++ .../modifications/ModificationUtils.java | 65 ++++++++++--------- 2 files changed, 83 insertions(+), 30 deletions(-) create mode 100644 src/main/java/org/gridsuite/modification/server/modifications/BusbarSectionFinderTraverser.java diff --git a/src/main/java/org/gridsuite/modification/server/modifications/BusbarSectionFinderTraverser.java b/src/main/java/org/gridsuite/modification/server/modifications/BusbarSectionFinderTraverser.java new file mode 100644 index 000000000..0ad2a218b --- /dev/null +++ b/src/main/java/org/gridsuite/modification/server/modifications/BusbarSectionFinderTraverser.java @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2024, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +package org.gridsuite.modification.server.modifications; + +import com.powsybl.iidm.network.IdentifiableType; +import com.powsybl.iidm.network.Switch; +import com.powsybl.iidm.network.Terminal; +import com.powsybl.math.graph.TraverseResult; + +/** + * @author Slimane Amar + */ +public class BusbarSectionFinderTraverser implements Terminal.TopologyTraverser { + + private final boolean onlyConnectedBbs; + + private String firstTraversedBbsId; + + public BusbarSectionFinderTraverser(boolean onlyConnectedBbs) { + this.onlyConnectedBbs = onlyConnectedBbs; + } + + @Override + public TraverseResult traverse(Terminal terminal, boolean connected) { + if (terminal.getConnectable().getType() == IdentifiableType.BUSBAR_SECTION) { + firstTraversedBbsId = terminal.getConnectable().getId(); + return TraverseResult.TERMINATE_TRAVERSER; + } + return TraverseResult.CONTINUE; + } + + @Override + public TraverseResult traverse(Switch aSwitch) { + if (onlyConnectedBbs && aSwitch.isOpen()) { + return TraverseResult.TERMINATE_PATH; + } + return TraverseResult.CONTINUE; + } + + public String getFirstTraversedBbsId() { + return firstTraversedBbsId; + } +} + diff --git a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java index a2f5a4833..3e5dd9cb3 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java @@ -13,6 +13,7 @@ import com.powsybl.iidm.modification.topology.*; import com.powsybl.iidm.network.*; import com.powsybl.iidm.network.extensions.*; +import com.powsybl.math.graph.TraversalType; import com.powsybl.network.store.iidm.impl.MinMaxReactiveLimitsImpl; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.*; @@ -615,9 +616,6 @@ public ReportNode modifyInjectionConnectivityAttributes(ConnectablePosition c InjectionModificationInfos modificationInfos, ReportNode connectivityReports) { List reports = new ArrayList<>(); - if (isVoltageOrBusbarIdMissing(modificationInfos.getVoltageLevelId(), modificationInfos.getBusOrBusbarSectionId(), modificationInfos.getEquipmentId(), reports)) { - return reports.get(0); - } processConnectivityPosition(connectablePosition, connectablePositionAdder, modificationInfos, injection.getNetwork(), reports, false); modifyConnection(modificationInfos.getTerminalConnected(), injection, injection.getTerminal(), reports); @@ -630,11 +628,6 @@ public ReportNode modifyBranchConnectivityAttributes(ConnectablePosition conn BranchModificationInfos modificationInfos, ReportNode connectivityReports) { List reports = new ArrayList<>(); - if (isVoltageOrBusbarIdMissing(modificationInfos.getVoltageLevelId1(), modificationInfos.getBusOrBusbarSectionId1(), modificationInfos.getEquipmentId(), reports) || - isVoltageOrBusbarIdMissing(modificationInfos.getVoltageLevelId2(), modificationInfos.getBusOrBusbarSectionId2(), modificationInfos.getEquipmentId(), reports)) { - return reports.get(0); - } - processConnectivityPosition(connectablePosition, connectablePositionAdder, modificationInfos, branch.getNetwork(), reports, true); modifyConnection(modificationInfos.getTerminal1Connected(), branch, branch.getTerminal1(), reports); modifyConnection(modificationInfos.getTerminal2Connected(), branch, branch.getTerminal2(), reports); @@ -642,19 +635,6 @@ public ReportNode modifyBranchConnectivityAttributes(ConnectablePosition conn return reportModifications(connectivityReports, reports, "ConnectivityModified", CONNECTIVITY); } - private boolean isVoltageOrBusbarIdMissing(AttributeModification voltageLevelId, AttributeModification busbarSectionId, String equipmentId, List reports) { - if (voltageLevelId == null || busbarSectionId == null) { - reports.add(ReportNode.newRootReportNode() - .withMessageTemplate("VoltageLevelOrBusbarSectionNotFound", - "Voltage level id or Bus bar section id of equipment id=${id} not found") - .withUntypedValue("id", equipmentId) - .withSeverity(TypedValue.WARN_SEVERITY) - .build()); - return true; - } - return false; - } - private void processConnectivityPosition(ConnectablePosition connectablePosition, ConnectablePositionAdder connectablePositionAdder, BasicEquipmentModificationInfos modificationInfos, @@ -742,7 +722,7 @@ private void addConnectablePosition(ConnectablePositionAdder adder, AttributeModification equipmentId = getEquipmentId(modificationInfos); AttributeModification voltageLevelId = getVoltageLevelId(modificationInfos, feederNumber); AttributeModification busOrBusbarSectionId = getBusOrBusbarSectionId(modificationInfos, feederNumber); - int position = getPosition(connectionPosition, busOrBusbarSectionId, network, voltageLevelId); + int position = getPosition(connectionPosition, busOrBusbarSectionId, voltageLevelId, equipmentId, feederNumber, network); ReportNode connectionNameReport = applyConnectablePositionAttribute( feeder::withName, connectionName, equipmentId, reports, @@ -858,16 +838,41 @@ private AttributeModification getConnectionPosition(BasicEquipmentModif InjectionModificationInfos::getConnectionPosition); } + private String getBusOrBusbarSection(Terminal terminal) { + String busOrBusbarSectionId; + if (terminal.getVoltageLevel().getTopologyKind().equals(TopologyKind.BUS_BREAKER)) { + if (terminal.isConnected()) { + busOrBusbarSectionId = terminal.getBusBreakerView().getBus().getId(); + } else { + busOrBusbarSectionId = terminal.getBusBreakerView().getConnectableBus().getId(); + } + } else { + busOrBusbarSectionId = getBusbarSectionId(terminal); + } + return busOrBusbarSectionId; + } + + private String getBusbarSectionId(Terminal terminal) { + BusbarSectionFinderTraverser connectedBusbarSectionFinder = new BusbarSectionFinderTraverser(terminal.isConnected()); + terminal.traverse(connectedBusbarSectionFinder, TraversalType.BREADTH_FIRST); + return connectedBusbarSectionFinder.getFirstTraversedBbsId(); + } + private int getPosition(AttributeModification connectionPosition, AttributeModification busOrBusbarSectionId, - Network network, - AttributeModification voltageLevelId) { - return getPosition( - connectionPosition == null ? null : connectionPosition.getValue(), - busOrBusbarSectionId == null ? null : busOrBusbarSectionId.getValue(), - network, - getVoltageLevel(network, voltageLevelId == null ? null : voltageLevelId.getValue()) - ); + AttributeModification voltageLevelId, + AttributeModification equipmentId, + int feederNumber, + Network network) { + String equipmentValue = equipmentId.getValue(); + Terminal selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Injection injection ? injection.getTerminal() : + getTerminalsFromIdentifiable(network.getIdentifiable(equipmentValue)).get(feederNumber - 1); + String voltageLevel = (voltageLevelId != null) ? voltageLevelId.getValue() : + selectedTerminal.getVoltageLevel().getId(); + String busOrBusbarSection = (busOrBusbarSectionId != null) ? busOrBusbarSectionId.getValue() : + getBusOrBusbarSection(selectedTerminal); + Integer connectionPositionValue = (connectionPosition != null) ? connectionPosition.getValue() : null; + return getPosition(connectionPositionValue, busOrBusbarSection, network, getVoltageLevel(network, voltageLevel)); } private void modifyConnection(AttributeModification terminalConnected, Identifiable equipment, Terminal terminal, List reports) { From 76b64b15796e6dd02d4e50ae8695c459a0ef9a14 Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Tue, 15 Oct 2024 11:04:15 +0200 Subject: [PATCH 02/11] fix test and clean code --- .../server/modifications/ModificationUtils.java | 13 +++++++++---- .../TwoWindingsTransformerModificationTest.java | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java index 3e5dd9cb3..13017df08 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java @@ -719,6 +719,9 @@ private void addConnectablePosition(ConnectablePositionAdder adder, AttributeModification connectionName = getConnectionName(modificationInfos, feederNumber); AttributeModification connectionDirection = getConnectionDirection(modificationInfos, feederNumber); AttributeModification connectionPosition = getConnectionPosition(modificationInfos, feederNumber); + if (Objects.isNull(connectionName) && Objects.isNull(connectionDirection) && Objects.isNull(connectionPosition)) { + return; + } AttributeModification equipmentId = getEquipmentId(modificationInfos); AttributeModification voltageLevelId = getVoltageLevelId(modificationInfos, feederNumber); AttributeModification busOrBusbarSectionId = getBusOrBusbarSectionId(modificationInfos, feederNumber); @@ -867,10 +870,12 @@ private int getPosition(AttributeModification connectionPosition, String equipmentValue = equipmentId.getValue(); Terminal selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Injection injection ? injection.getTerminal() : getTerminalsFromIdentifiable(network.getIdentifiable(equipmentValue)).get(feederNumber - 1); - String voltageLevel = (voltageLevelId != null) ? voltageLevelId.getValue() : - selectedTerminal.getVoltageLevel().getId(); - String busOrBusbarSection = (busOrBusbarSectionId != null) ? busOrBusbarSectionId.getValue() : - getBusOrBusbarSection(selectedTerminal); + String voltageLevel = (voltageLevelId != null && voltageLevelId.getValue() != null) + ? voltageLevelId.getValue() + : Optional.ofNullable(selectedTerminal).map(terminal -> terminal.getVoltageLevel().getId()).orElse(null); + String busOrBusbarSection = (busOrBusbarSectionId != null && busOrBusbarSectionId.getValue() != null) + ? busOrBusbarSectionId.getValue() + : Optional.ofNullable(selectedTerminal).map(this::getBusOrBusbarSection).orElse(null); Integer connectionPositionValue = (connectionPosition != null) ? connectionPosition.getValue() : null; return getPosition(connectionPositionValue, busOrBusbarSection, network, getVoltageLevel(network, voltageLevel)); } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerModificationTest.java index efd3a20a0..c395fafd1 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerModificationTest.java @@ -602,7 +602,7 @@ public void testChangeConnectionStatus() { changeConnectionState(getNetwork().getTwoWindingsTransformer("trf2"), TwoSides.ONE, true, true, null); changeConnectionState(getNetwork().getTwoWindingsTransformer("trf2"), TwoSides.ONE, true, false, null); changeConnectionState(getNetwork().getTwoWindingsTransformer("trf2"), TwoSides.TWO, true, true, null); - changeConnectionState(getNetwork().getTwoWindingsTransformer("trf2"), TwoSides.TWO, true, false, "Could not disconnect equipment 'trf2' on side TWO"); + changeConnectionState(getNetwork().getTwoWindingsTransformer("trf2"), TwoSides.TWO, true, false, "Could not disconnect equipment 'trf2'"); } @SneakyThrows From 3ae45fe0424f98c756317574ba82b6a5f860aee4 Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Tue, 15 Oct 2024 11:32:24 +0200 Subject: [PATCH 03/11] add test and fix coverage code --- .../modifications/LineModificationTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineModificationTest.java index 109581464..e5288c4f4 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineModificationTest.java @@ -445,4 +445,22 @@ public void changeLineConnectablePosition() throws Exception { assertEquals(1, createdModification.getConnectionPosition2().getValue()); } + + @Test + public void changeLineConnectablePositionWithoutBusBarSection() throws Exception { + LineModificationInfos lineModificationInfos = LineModificationInfos.builder() + .stashed(false) + .equipmentId("line3") + .equipmentName(new AttributeModification<>("LineModified", OperationType.SET)) + .connectionName1(new AttributeModification<>("line3", OperationType.SET)) + .connectionName2(new AttributeModification<>("line3", OperationType.SET)) + .build(); + String modificationInfosJson = mapper.writeValueAsString(lineModificationInfos); + mockMvc.perform(post(getNetworkModificationUri()).content(modificationInfosJson).contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()); + LineModificationInfos createdModification = (LineModificationInfos) modificationRepository.getModifications(getGroupId(), false, true).get(0); + assertEquals("line3", createdModification.getConnectionName1().getValue()); + assertEquals("line3", createdModification.getConnectionName2().getValue()); + + } } From c2785c636623945a164c2fc3b12d9c4f25e06a4f Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Tue, 15 Oct 2024 19:13:07 +0200 Subject: [PATCH 04/11] add test to fix coverage --- .../GeneratorModificationTest.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java index b9841d3f3..cce746d4a 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java @@ -24,6 +24,8 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.stream.IntStream; +import static org.gridsuite.modification.server.utils.NetworkUtil.*; +import static org.gridsuite.modification.server.utils.NetworkUtil.createGeneratorOnBus; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.gridsuite.modification.server.utils.assertions.Assertions.assertThat; import static org.junit.Assert.assertNull; @@ -445,6 +447,24 @@ public void testUnsetAttributes() throws Exception { } + @Test + public void changeGeneratorOnBusBreakerWithoutBusBarSection() throws Exception { + VoltageLevel v1 = createVoltageLevel(getNetwork().getSubstation("s1"), "v11", "v32", TopologyKind.BUS_BREAKER, 380.0); + createBusBarSection(getNetwork().getVoltageLevel("v1"), "1.7", "1.7", 0); + createBus(v1, "bus111", "bus111"); + createGeneratorOnBus(v1, "idGenerator1", "bus111", 42.1, 1.0); + GeneratorModificationInfos generatorModificationInfos = GeneratorModificationInfos.builder() + .stashed(false) + .equipmentId("idGenerator1") + .connectionPosition(new AttributeModification<>(1, OperationType.SET)) + .build(); + String generatorModificationInfosJson = mapper.writeValueAsString(generatorModificationInfos); + mockMvc.perform(post(getNetworkModificationUri()).content(generatorModificationInfosJson).contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()); + generatorModificationInfos = (GeneratorModificationInfos) modificationRepository.getModifications(getGroupId(), false, true).get(0); + assertEquals(1, generatorModificationInfos.getConnectionPosition().getValue()); + } + @Override @SneakyThrows protected void testCreationModificationMessage(ModificationInfos modificationInfos) { From 4879f61ee38eec247d29410e09da0baa6a2db041 Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Wed, 16 Oct 2024 13:22:58 +0200 Subject: [PATCH 05/11] code review remarqs --- .../server/modifications/BusbarSectionFinderTraverser.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/BusbarSectionFinderTraverser.java b/src/main/java/org/gridsuite/modification/server/modifications/BusbarSectionFinderTraverser.java index 0ad2a218b..82efbedcc 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/BusbarSectionFinderTraverser.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/BusbarSectionFinderTraverser.java @@ -14,6 +14,7 @@ /** * @author Slimane Amar */ +// FIXME : to remove when this class is available in network-store public class BusbarSectionFinderTraverser implements Terminal.TopologyTraverser { private final boolean onlyConnectedBbs; From ece8753b57072fd35351fa32c73edd7e5c0a5548 Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Thu, 17 Oct 2024 15:34:05 +0200 Subject: [PATCH 06/11] fix bug related to adder feeder with null value --- .../modifications/ModificationUtils.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java index 13017df08..ccbe21acb 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java @@ -666,13 +666,11 @@ private void createNewConnectivityPosition(ConnectablePositionAdder adder, List reports, boolean isBranch) { if (isBranch) { - ConnectablePositionAdder.FeederAdder feederAdder1 = adder.newFeeder1(); - ConnectablePositionAdder.FeederAdder feederAdder2 = adder.newFeeder2(); - addConnectablePosition(adder, feederAdder1, modificationInfos, network, reports, 1); - addConnectablePosition(adder, feederAdder2, modificationInfos, network, reports, 2); + addConnectablePosition(adder, modificationInfos, network, reports, 1); + addConnectablePosition(adder, modificationInfos, network, reports, 2); } else { ConnectablePositionAdder.FeederAdder feederAdder = adder.newFeeder(); - addConnectablePosition(adder, feederAdder, modificationInfos, network, reports, 0); + addConnectablePosition(adder, modificationInfos, network, reports, 0); } } @@ -711,7 +709,6 @@ private void applyModifications(ConnectablePosition.Feeder feeder, } private void addConnectablePosition(ConnectablePositionAdder adder, - ConnectablePositionAdder.FeederAdder feeder, BasicEquipmentModificationInfos modificationInfos, Network network, List reports, @@ -726,7 +723,15 @@ private void addConnectablePosition(ConnectablePositionAdder adder, AttributeModification voltageLevelId = getVoltageLevelId(modificationInfos, feederNumber); AttributeModification busOrBusbarSectionId = getBusOrBusbarSectionId(modificationInfos, feederNumber); int position = getPosition(connectionPosition, busOrBusbarSectionId, voltageLevelId, equipmentId, feederNumber, network); - + ConnectablePositionAdder.FeederAdder feeder; + switch (feederNumber) { + case 0 -> feeder = adder.newFeeder(); + case 1 -> feeder = adder.newFeeder1(); + case 2 -> feeder = adder.newFeeder2(); + default -> { + return; + } + } ReportNode connectionNameReport = applyConnectablePositionAttribute( feeder::withName, connectionName, equipmentId, reports, getConnectionNameField(feederNumber), connectionDirection, connectionPosition From 4360b61ed7194bc0d348ae6ac4dc54688a34aea3 Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Thu, 17 Oct 2024 18:14:46 +0200 Subject: [PATCH 07/11] remove unused variable --- .../modification/server/modifications/ModificationUtils.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java index ccbe21acb..f1108f85b 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java @@ -669,7 +669,6 @@ private void createNewConnectivityPosition(ConnectablePositionAdder adder, addConnectablePosition(adder, modificationInfos, network, reports, 1); addConnectablePosition(adder, modificationInfos, network, reports, 2); } else { - ConnectablePositionAdder.FeederAdder feederAdder = adder.newFeeder(); addConnectablePosition(adder, modificationInfos, network, reports, 0); } } From 2eea41bef3aaa04e21ca309d3e57c135f7fba3d5 Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Thu, 17 Oct 2024 22:28:46 +0200 Subject: [PATCH 08/11] code review remarqs --- .../modifications/ModificationUtils.java | 150 ++++++++++-------- 1 file changed, 80 insertions(+), 70 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java index f1108f85b..68b515ea2 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java @@ -616,7 +616,7 @@ public ReportNode modifyInjectionConnectivityAttributes(ConnectablePosition c InjectionModificationInfos modificationInfos, ReportNode connectivityReports) { List reports = new ArrayList<>(); - processConnectivityPosition(connectablePosition, connectablePositionAdder, modificationInfos, injection.getNetwork(), reports, false); + processConnectivityPosition(connectablePosition, connectablePositionAdder, modificationInfos, injection.getNetwork(), reports); modifyConnection(modificationInfos.getTerminalConnected(), injection, injection.getTerminal(), reports); return reportModifications(connectivityReports, reports, "ConnectivityModified", CONNECTIVITY); @@ -628,7 +628,7 @@ public ReportNode modifyBranchConnectivityAttributes(ConnectablePosition conn BranchModificationInfos modificationInfos, ReportNode connectivityReports) { List reports = new ArrayList<>(); - processConnectivityPosition(connectablePosition, connectablePositionAdder, modificationInfos, branch.getNetwork(), reports, true); + processConnectivityPosition(connectablePosition, connectablePositionAdder, modificationInfos, branch.getNetwork(), reports); modifyConnection(modificationInfos.getTerminal1Connected(), branch, branch.getTerminal1(), reports); modifyConnection(modificationInfos.getTerminal2Connected(), branch, branch.getTerminal2(), reports); @@ -639,69 +639,72 @@ private void processConnectivityPosition(ConnectablePosition connectablePosit ConnectablePositionAdder connectablePositionAdder, BasicEquipmentModificationInfos modificationInfos, Network network, - List reports, - boolean isBranch) { + List reports) { if (connectablePosition != null) { - modifyExistingConnectivityPosition(connectablePosition, modificationInfos, reports, isBranch); + modifyExistingConnectivityPosition(connectablePosition, modificationInfos, reports); } else { - createNewConnectivityPosition(connectablePositionAdder, modificationInfos, network, reports, isBranch); + createNewConnectivityPosition(connectablePositionAdder, modificationInfos, network, reports); } } + public enum FeederAdderType { + INJECTION, + BRANCH_SIDE_ONE, + BRANCH_SIDE_TWO + } + private void modifyExistingConnectivityPosition(ConnectablePosition connectablePosition, BasicEquipmentModificationInfos modificationInfos, - List reports, - boolean isBranch) { - if (isBranch) { - modifyConnectablePosition(connectablePosition.getFeeder1(), modificationInfos, reports, 1); - modifyConnectablePosition(connectablePosition.getFeeder2(), modificationInfos, reports, 2); - } else { - modifyConnectablePosition(connectablePosition.getFeeder(), modificationInfos, reports, 0); + List reports) { + if (modificationInfos instanceof BranchModificationInfos) { + modifyConnectablePosition(connectablePosition.getFeeder1(), modificationInfos, reports, FeederAdderType.BRANCH_SIDE_ONE); + modifyConnectablePosition(connectablePosition.getFeeder2(), modificationInfos, reports, FeederAdderType.BRANCH_SIDE_TWO); + } else if (modificationInfos instanceof InjectionModificationInfos) { + modifyConnectablePosition(connectablePosition.getFeeder(), modificationInfos, reports, FeederAdderType.INJECTION); } } private void createNewConnectivityPosition(ConnectablePositionAdder adder, BasicEquipmentModificationInfos modificationInfos, Network network, - List reports, - boolean isBranch) { - if (isBranch) { - addConnectablePosition(adder, modificationInfos, network, reports, 1); - addConnectablePosition(adder, modificationInfos, network, reports, 2); - } else { - addConnectablePosition(adder, modificationInfos, network, reports, 0); + List reports) { + if (modificationInfos instanceof BranchModificationInfos) { + addConnectablePosition(adder, modificationInfos, network, reports, FeederAdderType.BRANCH_SIDE_ONE); + addConnectablePosition(adder, modificationInfos, network, reports, FeederAdderType.BRANCH_SIDE_TWO); + } else if (modificationInfos instanceof InjectionModificationInfos) { + addConnectablePosition(adder, modificationInfos, network, reports, FeederAdderType.INJECTION); } } private void modifyConnectablePosition(ConnectablePosition.Feeder feeder, BasicEquipmentModificationInfos modificationInfos, List reports, - int feederNumber) { - applyModifications(feeder, modificationInfos, reports, feederNumber); + FeederAdderType feederAdderType) { + applyModifications(feeder, modificationInfos, reports, feederAdderType); } private void applyModifications(ConnectablePosition.Feeder feeder, BasicEquipmentModificationInfos modificationInfos, List reports, - int feederNumber) { + FeederAdderType feederAdderType) { ReportNode connectionNameReport = applyElementaryModificationsAndReturnReport(feeder::setName, feeder.getName()::get, - getConnectionName(modificationInfos, feederNumber), - getConnectionNameField(feederNumber)); + getConnectionName(modificationInfos, feederAdderType), + getConnectionNameField(feederAdderType)); if (connectionNameReport != null) { reports.add(connectionNameReport); } ReportNode connectionDirectionReport = applyElementaryModificationsAndReturnReport(feeder::setDirection, feeder::getDirection, - getConnectionDirection(modificationInfos, feederNumber), - getConnectionDirectionField(feederNumber)); + getConnectionDirection(modificationInfos, feederAdderType), + getConnectionDirectionField(feederAdderType)); if (connectionDirectionReport != null) { reports.add(connectionDirectionReport); } ReportNode connectionPositionReport = applyElementaryModificationsAndReturnReport(feeder::setOrder, feeder.getOrder()::get, - getConnectionPosition(modificationInfos, feederNumber), - getConnectionPositionField(feederNumber)); + getConnectionPosition(modificationInfos, feederAdderType), + getConnectionPositionField(feederAdderType)); if (connectionPositionReport != null) { reports.add(connectionPositionReport); } @@ -711,42 +714,42 @@ private void addConnectablePosition(ConnectablePositionAdder adder, BasicEquipmentModificationInfos modificationInfos, Network network, List reports, - int feederNumber) { - AttributeModification connectionName = getConnectionName(modificationInfos, feederNumber); - AttributeModification connectionDirection = getConnectionDirection(modificationInfos, feederNumber); - AttributeModification connectionPosition = getConnectionPosition(modificationInfos, feederNumber); + FeederAdderType feederAdderType) { + AttributeModification connectionName = getConnectionName(modificationInfos, feederAdderType); + AttributeModification connectionDirection = getConnectionDirection(modificationInfos, feederAdderType); + AttributeModification connectionPosition = getConnectionPosition(modificationInfos, feederAdderType); if (Objects.isNull(connectionName) && Objects.isNull(connectionDirection) && Objects.isNull(connectionPosition)) { return; } AttributeModification equipmentId = getEquipmentId(modificationInfos); - AttributeModification voltageLevelId = getVoltageLevelId(modificationInfos, feederNumber); - AttributeModification busOrBusbarSectionId = getBusOrBusbarSectionId(modificationInfos, feederNumber); - int position = getPosition(connectionPosition, busOrBusbarSectionId, voltageLevelId, equipmentId, feederNumber, network); + AttributeModification voltageLevelId = getVoltageLevelId(modificationInfos, feederAdderType); + AttributeModification busOrBusbarSectionId = getBusOrBusbarSectionId(modificationInfos, feederAdderType); + int position = getPosition(connectionPosition, busOrBusbarSectionId, voltageLevelId, equipmentId, feederAdderType, network); ConnectablePositionAdder.FeederAdder feeder; - switch (feederNumber) { - case 0 -> feeder = adder.newFeeder(); - case 1 -> feeder = adder.newFeeder1(); - case 2 -> feeder = adder.newFeeder2(); + switch (feederAdderType) { + case INJECTION -> feeder = adder.newFeeder(); + case BRANCH_SIDE_ONE -> feeder = adder.newFeeder1(); + case BRANCH_SIDE_TWO -> feeder = adder.newFeeder2(); default -> { return; } } ReportNode connectionNameReport = applyConnectablePositionAttribute( feeder::withName, connectionName, equipmentId, reports, - getConnectionNameField(feederNumber), connectionDirection, connectionPosition + getConnectionNameField(feederAdderType), connectionDirection, connectionPosition ); ReportNode connectionDirectionReport = applyConnectablePositionAttribute( feeder::withDirection, connectionDirection, new AttributeModification<>(ConnectablePosition.Direction.UNDEFINED, OperationType.SET), - reports, getConnectionDirectionField(feederNumber), + reports, getConnectionDirectionField(feederAdderType), connectionName, connectionPosition ); ReportNode connectionPositionReport = applyConnectablePositionAttribute( feeder::withOrder, connectionPosition, new AttributeModification<>(position, OperationType.SET), - reports, getConnectionPositionField(feederNumber), + reports, getConnectionPositionField(feederAdderType), connectionName, connectionDirection ); @@ -778,35 +781,38 @@ private boolean isAnyAttributesNonNull(AttributeModification... attributes) { return Arrays.stream(attributes).anyMatch(Objects::nonNull); } - private T getConnectionDetail(BasicEquipmentModificationInfos modificationInfos, int feederNumber, + private T getConnectionDetail(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType, Function branchFunc1, Function branchFunc2, Function injectionFunc) { if (modificationInfos instanceof BranchModificationInfos branchInfo) { - return feederNumber == 1 ? branchFunc1.apply(branchInfo) : branchFunc2.apply(branchInfo); + if (Objects.requireNonNull(feederAdderType) == FeederAdderType.BRANCH_SIDE_ONE) { + branchFunc1.apply(branchInfo); + } else if (feederAdderType == FeederAdderType.BRANCH_SIDE_TWO) { + branchFunc2.apply(branchInfo); + } } else if (modificationInfos instanceof InjectionModificationInfos injectionInfo) { return injectionFunc.apply(injectionInfo); } return null; } - private String getConnectionFieldName(int feederNumber, String baseFieldName) { - return switch (feederNumber) { - case 0 -> baseFieldName; - case 1 -> baseFieldName + " 1"; - case 2 -> baseFieldName + " 2"; - default -> ""; + private String getConnectionFieldName(FeederAdderType feederAdderType, String baseFieldName) { + return switch (feederAdderType) { + case INJECTION -> baseFieldName; + case BRANCH_SIDE_ONE -> baseFieldName + " 1"; + case BRANCH_SIDE_TWO -> baseFieldName + " 2"; }; } - private AttributeModification getVoltageLevelId(BasicEquipmentModificationInfos modificationInfos, int feederNumber) { - return getConnectionDetail(modificationInfos, feederNumber, + private AttributeModification getVoltageLevelId(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { + return getConnectionDetail(modificationInfos, feederAdderType, BranchModificationInfos::getVoltageLevelId1, BranchModificationInfos::getVoltageLevelId2, InjectionModificationInfos::getVoltageLevelId); } - private AttributeModification getBusOrBusbarSectionId(BasicEquipmentModificationInfos modificationInfos, int feederNumber) { - return getConnectionDetail(modificationInfos, feederNumber, + private AttributeModification getBusOrBusbarSectionId(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { + return getConnectionDetail(modificationInfos, feederAdderType, BranchModificationInfos::getBusOrBusbarSectionId1, BranchModificationInfos::getBusOrBusbarSectionId2, InjectionModificationInfos::getBusOrBusbarSectionId); } @@ -815,32 +821,32 @@ private AttributeModification getEquipmentId(BasicEquipmentModificationI return AttributeModification.toAttributeModification(modificationInfos.getEquipmentId(), OperationType.SET); } - private AttributeModification getConnectionName(BasicEquipmentModificationInfos modificationInfos, int feederNumber) { - return getConnectionDetail(modificationInfos, feederNumber, + private AttributeModification getConnectionName(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { + return getConnectionDetail(modificationInfos, feederAdderType, BranchModificationInfos::getConnectionName1, BranchModificationInfos::getConnectionName2, InjectionModificationInfos::getConnectionName); } - private String getConnectionNameField(int feederNumber) { - return getConnectionFieldName(feederNumber, CONNECTION_NAME_FIELD_NAME); + private String getConnectionNameField(FeederAdderType feederAdderType) { + return getConnectionFieldName(feederAdderType, CONNECTION_NAME_FIELD_NAME); } - private String getConnectionDirectionField(int feederNumber) { - return getConnectionFieldName(feederNumber, CONNECTION_DIRECTION_FIELD_NAME); + private String getConnectionDirectionField(FeederAdderType feederAdderType) { + return getConnectionFieldName(feederAdderType, CONNECTION_DIRECTION_FIELD_NAME); } - private String getConnectionPositionField(int feederNumber) { - return getConnectionFieldName(feederNumber, CONNECTION_POSITION_FIELD_NAME); + private String getConnectionPositionField(FeederAdderType feederAdderType) { + return getConnectionFieldName(feederAdderType, CONNECTION_POSITION_FIELD_NAME); } - private AttributeModification getConnectionDirection(BasicEquipmentModificationInfos modificationInfos, int feederNumber) { - return getConnectionDetail(modificationInfos, feederNumber, + private AttributeModification getConnectionDirection(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { + return getConnectionDetail(modificationInfos, feederAdderType, BranchModificationInfos::getConnectionDirection1, BranchModificationInfos::getConnectionDirection2, InjectionModificationInfos::getConnectionDirection); } - private AttributeModification getConnectionPosition(BasicEquipmentModificationInfos modificationInfos, int feederNumber) { - return getConnectionDetail(modificationInfos, feederNumber, + private AttributeModification getConnectionPosition(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { + return getConnectionDetail(modificationInfos, feederAdderType, BranchModificationInfos::getConnectionPosition1, BranchModificationInfos::getConnectionPosition2, InjectionModificationInfos::getConnectionPosition); } @@ -869,11 +875,15 @@ private int getPosition(AttributeModification connectionPosition, AttributeModification busOrBusbarSectionId, AttributeModification voltageLevelId, AttributeModification equipmentId, - int feederNumber, + FeederAdderType feederAdderType, Network network) { String equipmentValue = equipmentId.getValue(); - Terminal selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Injection injection ? injection.getTerminal() : - getTerminalsFromIdentifiable(network.getIdentifiable(equipmentValue)).get(feederNumber - 1); + Terminal selectedTerminal = null; + switch (feederAdderType) { + case INJECTION -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Injection injection ? injection.getTerminal() : null; + case BRANCH_SIDE_ONE -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Branch branch ? branch.getTerminal1() : null; + case BRANCH_SIDE_TWO -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Branch branch ? branch.getTerminal2() : null; + } String voltageLevel = (voltageLevelId != null && voltageLevelId.getValue() != null) ? voltageLevelId.getValue() : Optional.ofNullable(selectedTerminal).map(terminal -> terminal.getVoltageLevel().getId()).orElse(null); From 6eb23522dca467324a22347b1addaa48440d5bd7 Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Fri, 18 Oct 2024 11:25:03 +0200 Subject: [PATCH 09/11] code review remarqs --- .../server/modifications/ModificationUtils.java | 16 ++++++++-------- .../modifications/GeneratorModificationTest.java | 4 ++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java index 68b515ea2..e660a3509 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java @@ -58,6 +58,12 @@ public final class ModificationUtils { public static final String CONNECTION_POSITION_FIELD_NAME = "Connection position"; public static final String NOT_EXIST_IN_NETWORK = " does not exist in network"; + public enum FeederAdderType { + INJECTION, + BRANCH_SIDE_ONE, + BRANCH_SIDE_TWO + } + private ModificationUtils() { } @@ -647,12 +653,6 @@ private void processConnectivityPosition(ConnectablePosition connectablePosit } } - public enum FeederAdderType { - INJECTION, - BRANCH_SIDE_ONE, - BRANCH_SIDE_TWO - } - private void modifyExistingConnectivityPosition(ConnectablePosition connectablePosition, BasicEquipmentModificationInfos modificationInfos, List reports) { @@ -787,9 +787,9 @@ private T getConnectionDetail(BasicEquipmentModificationInfos modificationIn Function injectionFunc) { if (modificationInfos instanceof BranchModificationInfos branchInfo) { if (Objects.requireNonNull(feederAdderType) == FeederAdderType.BRANCH_SIDE_ONE) { - branchFunc1.apply(branchInfo); + return branchFunc1.apply(branchInfo); } else if (feederAdderType == FeederAdderType.BRANCH_SIDE_TWO) { - branchFunc2.apply(branchInfo); + return branchFunc2.apply(branchInfo); } } else if (modificationInfos instanceof InjectionModificationInfos injectionInfo) { return injectionFunc.apply(injectionInfo); diff --git a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java index cce746d4a..b110a1070 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.*; import com.powsybl.iidm.network.extensions.ActivePowerControl; +import com.powsybl.iidm.network.extensions.ConnectablePosition; import com.powsybl.iidm.network.extensions.GeneratorShortCircuit; import com.powsybl.iidm.network.extensions.GeneratorStartup; import lombok.SneakyThrows; @@ -52,6 +53,9 @@ protected ModificationInfos buildModification() { .equipmentName(new AttributeModification<>("newV1Generator", OperationType.SET)) .voltageLevelId(new AttributeModification<>("v2", OperationType.SET)) .busOrBusbarSectionId(new AttributeModification<>("1B", OperationType.SET)) + .connectionName(new AttributeModification<>("idGenerator", OperationType.SET)) + .connectionPosition(new AttributeModification<>(1, OperationType.SET)) + .connectionDirection(new AttributeModification<>(ConnectablePosition.Direction.TOP, OperationType.SET)) .targetP(new AttributeModification<>(80.0, OperationType.SET)) .targetQ(new AttributeModification<>(40.0, OperationType.SET)) .targetV(new AttributeModification<>(48.0, OperationType.SET)) From e70e4abf253b4f8bda52601835a8f250c8c06661 Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Fri, 18 Oct 2024 14:00:33 +0200 Subject: [PATCH 10/11] rename FeederAdderType by FeederSide --- .../modifications/ModificationUtils.java | 100 +++++++++--------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java index e660a3509..01c239700 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java @@ -58,7 +58,7 @@ public final class ModificationUtils { public static final String CONNECTION_POSITION_FIELD_NAME = "Connection position"; public static final String NOT_EXIST_IN_NETWORK = " does not exist in network"; - public enum FeederAdderType { + public enum FeederSide { INJECTION, BRANCH_SIDE_ONE, BRANCH_SIDE_TWO @@ -657,10 +657,10 @@ private void modifyExistingConnectivityPosition(ConnectablePosition connectab BasicEquipmentModificationInfos modificationInfos, List reports) { if (modificationInfos instanceof BranchModificationInfos) { - modifyConnectablePosition(connectablePosition.getFeeder1(), modificationInfos, reports, FeederAdderType.BRANCH_SIDE_ONE); - modifyConnectablePosition(connectablePosition.getFeeder2(), modificationInfos, reports, FeederAdderType.BRANCH_SIDE_TWO); + modifyConnectablePosition(connectablePosition.getFeeder1(), modificationInfos, reports, FeederSide.BRANCH_SIDE_ONE); + modifyConnectablePosition(connectablePosition.getFeeder2(), modificationInfos, reports, FeederSide.BRANCH_SIDE_TWO); } else if (modificationInfos instanceof InjectionModificationInfos) { - modifyConnectablePosition(connectablePosition.getFeeder(), modificationInfos, reports, FeederAdderType.INJECTION); + modifyConnectablePosition(connectablePosition.getFeeder(), modificationInfos, reports, FeederSide.INJECTION); } } @@ -669,42 +669,42 @@ private void createNewConnectivityPosition(ConnectablePositionAdder adder, Network network, List reports) { if (modificationInfos instanceof BranchModificationInfos) { - addConnectablePosition(adder, modificationInfos, network, reports, FeederAdderType.BRANCH_SIDE_ONE); - addConnectablePosition(adder, modificationInfos, network, reports, FeederAdderType.BRANCH_SIDE_TWO); + addConnectablePosition(adder, modificationInfos, network, reports, FeederSide.BRANCH_SIDE_ONE); + addConnectablePosition(adder, modificationInfos, network, reports, FeederSide.BRANCH_SIDE_TWO); } else if (modificationInfos instanceof InjectionModificationInfos) { - addConnectablePosition(adder, modificationInfos, network, reports, FeederAdderType.INJECTION); + addConnectablePosition(adder, modificationInfos, network, reports, FeederSide.INJECTION); } } private void modifyConnectablePosition(ConnectablePosition.Feeder feeder, BasicEquipmentModificationInfos modificationInfos, List reports, - FeederAdderType feederAdderType) { - applyModifications(feeder, modificationInfos, reports, feederAdderType); + FeederSide feederSide) { + applyModifications(feeder, modificationInfos, reports, feederSide); } private void applyModifications(ConnectablePosition.Feeder feeder, BasicEquipmentModificationInfos modificationInfos, List reports, - FeederAdderType feederAdderType) { + FeederSide feederSide) { ReportNode connectionNameReport = applyElementaryModificationsAndReturnReport(feeder::setName, feeder.getName()::get, - getConnectionName(modificationInfos, feederAdderType), - getConnectionNameField(feederAdderType)); + getConnectionName(modificationInfos, feederSide), + getConnectionNameField(feederSide)); if (connectionNameReport != null) { reports.add(connectionNameReport); } ReportNode connectionDirectionReport = applyElementaryModificationsAndReturnReport(feeder::setDirection, feeder::getDirection, - getConnectionDirection(modificationInfos, feederAdderType), - getConnectionDirectionField(feederAdderType)); + getConnectionDirection(modificationInfos, feederSide), + getConnectionDirectionField(feederSide)); if (connectionDirectionReport != null) { reports.add(connectionDirectionReport); } ReportNode connectionPositionReport = applyElementaryModificationsAndReturnReport(feeder::setOrder, feeder.getOrder()::get, - getConnectionPosition(modificationInfos, feederAdderType), - getConnectionPositionField(feederAdderType)); + getConnectionPosition(modificationInfos, feederSide), + getConnectionPositionField(feederSide)); if (connectionPositionReport != null) { reports.add(connectionPositionReport); } @@ -714,19 +714,19 @@ private void addConnectablePosition(ConnectablePositionAdder adder, BasicEquipmentModificationInfos modificationInfos, Network network, List reports, - FeederAdderType feederAdderType) { - AttributeModification connectionName = getConnectionName(modificationInfos, feederAdderType); - AttributeModification connectionDirection = getConnectionDirection(modificationInfos, feederAdderType); - AttributeModification connectionPosition = getConnectionPosition(modificationInfos, feederAdderType); + FeederSide feederSide) { + AttributeModification connectionName = getConnectionName(modificationInfos, feederSide); + AttributeModification connectionDirection = getConnectionDirection(modificationInfos, feederSide); + AttributeModification connectionPosition = getConnectionPosition(modificationInfos, feederSide); if (Objects.isNull(connectionName) && Objects.isNull(connectionDirection) && Objects.isNull(connectionPosition)) { return; } AttributeModification equipmentId = getEquipmentId(modificationInfos); - AttributeModification voltageLevelId = getVoltageLevelId(modificationInfos, feederAdderType); - AttributeModification busOrBusbarSectionId = getBusOrBusbarSectionId(modificationInfos, feederAdderType); - int position = getPosition(connectionPosition, busOrBusbarSectionId, voltageLevelId, equipmentId, feederAdderType, network); + AttributeModification voltageLevelId = getVoltageLevelId(modificationInfos, feederSide); + AttributeModification busOrBusbarSectionId = getBusOrBusbarSectionId(modificationInfos, feederSide); + int position = getPosition(connectionPosition, busOrBusbarSectionId, voltageLevelId, equipmentId, feederSide, network); ConnectablePositionAdder.FeederAdder feeder; - switch (feederAdderType) { + switch (feederSide) { case INJECTION -> feeder = adder.newFeeder(); case BRANCH_SIDE_ONE -> feeder = adder.newFeeder1(); case BRANCH_SIDE_TWO -> feeder = adder.newFeeder2(); @@ -736,20 +736,20 @@ private void addConnectablePosition(ConnectablePositionAdder adder, } ReportNode connectionNameReport = applyConnectablePositionAttribute( feeder::withName, connectionName, equipmentId, reports, - getConnectionNameField(feederAdderType), connectionDirection, connectionPosition + getConnectionNameField(feederSide), connectionDirection, connectionPosition ); ReportNode connectionDirectionReport = applyConnectablePositionAttribute( feeder::withDirection, connectionDirection, new AttributeModification<>(ConnectablePosition.Direction.UNDEFINED, OperationType.SET), - reports, getConnectionDirectionField(feederAdderType), + reports, getConnectionDirectionField(feederSide), connectionName, connectionPosition ); ReportNode connectionPositionReport = applyConnectablePositionAttribute( feeder::withOrder, connectionPosition, new AttributeModification<>(position, OperationType.SET), - reports, getConnectionPositionField(feederAdderType), + reports, getConnectionPositionField(feederSide), connectionName, connectionDirection ); @@ -781,14 +781,14 @@ private boolean isAnyAttributesNonNull(AttributeModification... attributes) { return Arrays.stream(attributes).anyMatch(Objects::nonNull); } - private T getConnectionDetail(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType, + private T getConnectionDetail(BasicEquipmentModificationInfos modificationInfos, FeederSide feederSide, Function branchFunc1, Function branchFunc2, Function injectionFunc) { if (modificationInfos instanceof BranchModificationInfos branchInfo) { - if (Objects.requireNonNull(feederAdderType) == FeederAdderType.BRANCH_SIDE_ONE) { + if (Objects.requireNonNull(feederSide) == FeederSide.BRANCH_SIDE_ONE) { return branchFunc1.apply(branchInfo); - } else if (feederAdderType == FeederAdderType.BRANCH_SIDE_TWO) { + } else if (feederSide == FeederSide.BRANCH_SIDE_TWO) { return branchFunc2.apply(branchInfo); } } else if (modificationInfos instanceof InjectionModificationInfos injectionInfo) { @@ -797,22 +797,22 @@ private T getConnectionDetail(BasicEquipmentModificationInfos modificationIn return null; } - private String getConnectionFieldName(FeederAdderType feederAdderType, String baseFieldName) { - return switch (feederAdderType) { + private String getConnectionFieldName(FeederSide feederSide, String baseFieldName) { + return switch (feederSide) { case INJECTION -> baseFieldName; case BRANCH_SIDE_ONE -> baseFieldName + " 1"; case BRANCH_SIDE_TWO -> baseFieldName + " 2"; }; } - private AttributeModification getVoltageLevelId(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { - return getConnectionDetail(modificationInfos, feederAdderType, + private AttributeModification getVoltageLevelId(BasicEquipmentModificationInfos modificationInfos, FeederSide feederSide) { + return getConnectionDetail(modificationInfos, feederSide, BranchModificationInfos::getVoltageLevelId1, BranchModificationInfos::getVoltageLevelId2, InjectionModificationInfos::getVoltageLevelId); } - private AttributeModification getBusOrBusbarSectionId(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { - return getConnectionDetail(modificationInfos, feederAdderType, + private AttributeModification getBusOrBusbarSectionId(BasicEquipmentModificationInfos modificationInfos, FeederSide feederSide) { + return getConnectionDetail(modificationInfos, feederSide, BranchModificationInfos::getBusOrBusbarSectionId1, BranchModificationInfos::getBusOrBusbarSectionId2, InjectionModificationInfos::getBusOrBusbarSectionId); } @@ -821,32 +821,32 @@ private AttributeModification getEquipmentId(BasicEquipmentModificationI return AttributeModification.toAttributeModification(modificationInfos.getEquipmentId(), OperationType.SET); } - private AttributeModification getConnectionName(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { - return getConnectionDetail(modificationInfos, feederAdderType, + private AttributeModification getConnectionName(BasicEquipmentModificationInfos modificationInfos, FeederSide feederSide) { + return getConnectionDetail(modificationInfos, feederSide, BranchModificationInfos::getConnectionName1, BranchModificationInfos::getConnectionName2, InjectionModificationInfos::getConnectionName); } - private String getConnectionNameField(FeederAdderType feederAdderType) { - return getConnectionFieldName(feederAdderType, CONNECTION_NAME_FIELD_NAME); + private String getConnectionNameField(FeederSide feederSide) { + return getConnectionFieldName(feederSide, CONNECTION_NAME_FIELD_NAME); } - private String getConnectionDirectionField(FeederAdderType feederAdderType) { - return getConnectionFieldName(feederAdderType, CONNECTION_DIRECTION_FIELD_NAME); + private String getConnectionDirectionField(FeederSide feederSide) { + return getConnectionFieldName(feederSide, CONNECTION_DIRECTION_FIELD_NAME); } - private String getConnectionPositionField(FeederAdderType feederAdderType) { - return getConnectionFieldName(feederAdderType, CONNECTION_POSITION_FIELD_NAME); + private String getConnectionPositionField(FeederSide feederSide) { + return getConnectionFieldName(feederSide, CONNECTION_POSITION_FIELD_NAME); } - private AttributeModification getConnectionDirection(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { - return getConnectionDetail(modificationInfos, feederAdderType, + private AttributeModification getConnectionDirection(BasicEquipmentModificationInfos modificationInfos, FeederSide feederSide) { + return getConnectionDetail(modificationInfos, feederSide, BranchModificationInfos::getConnectionDirection1, BranchModificationInfos::getConnectionDirection2, InjectionModificationInfos::getConnectionDirection); } - private AttributeModification getConnectionPosition(BasicEquipmentModificationInfos modificationInfos, FeederAdderType feederAdderType) { - return getConnectionDetail(modificationInfos, feederAdderType, + private AttributeModification getConnectionPosition(BasicEquipmentModificationInfos modificationInfos, FeederSide feederSide) { + return getConnectionDetail(modificationInfos, feederSide, BranchModificationInfos::getConnectionPosition1, BranchModificationInfos::getConnectionPosition2, InjectionModificationInfos::getConnectionPosition); } @@ -875,11 +875,11 @@ private int getPosition(AttributeModification connectionPosition, AttributeModification busOrBusbarSectionId, AttributeModification voltageLevelId, AttributeModification equipmentId, - FeederAdderType feederAdderType, + FeederSide feederSide, Network network) { String equipmentValue = equipmentId.getValue(); Terminal selectedTerminal = null; - switch (feederAdderType) { + switch (feederSide) { case INJECTION -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Injection injection ? injection.getTerminal() : null; case BRANCH_SIDE_ONE -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Branch branch ? branch.getTerminal1() : null; case BRANCH_SIDE_TWO -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Branch branch ? branch.getTerminal2() : null; From 2fcb6fa7e9aa970fa28942b710658f9f27d48972 Mon Sep 17 00:00:00 2001 From: Rehili Ghazwa Date: Fri, 18 Oct 2024 14:38:38 +0200 Subject: [PATCH 11/11] rename injection by injection-single-side --- .../server/modifications/ModificationUtils.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java index 01c239700..05c81b1ec 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/ModificationUtils.java @@ -59,7 +59,7 @@ public final class ModificationUtils { public static final String NOT_EXIST_IN_NETWORK = " does not exist in network"; public enum FeederSide { - INJECTION, + INJECTION_SINGLE_SIDE, BRANCH_SIDE_ONE, BRANCH_SIDE_TWO } @@ -660,7 +660,7 @@ private void modifyExistingConnectivityPosition(ConnectablePosition connectab modifyConnectablePosition(connectablePosition.getFeeder1(), modificationInfos, reports, FeederSide.BRANCH_SIDE_ONE); modifyConnectablePosition(connectablePosition.getFeeder2(), modificationInfos, reports, FeederSide.BRANCH_SIDE_TWO); } else if (modificationInfos instanceof InjectionModificationInfos) { - modifyConnectablePosition(connectablePosition.getFeeder(), modificationInfos, reports, FeederSide.INJECTION); + modifyConnectablePosition(connectablePosition.getFeeder(), modificationInfos, reports, FeederSide.INJECTION_SINGLE_SIDE); } } @@ -672,7 +672,7 @@ private void createNewConnectivityPosition(ConnectablePositionAdder adder, addConnectablePosition(adder, modificationInfos, network, reports, FeederSide.BRANCH_SIDE_ONE); addConnectablePosition(adder, modificationInfos, network, reports, FeederSide.BRANCH_SIDE_TWO); } else if (modificationInfos instanceof InjectionModificationInfos) { - addConnectablePosition(adder, modificationInfos, network, reports, FeederSide.INJECTION); + addConnectablePosition(adder, modificationInfos, network, reports, FeederSide.INJECTION_SINGLE_SIDE); } } @@ -727,7 +727,7 @@ private void addConnectablePosition(ConnectablePositionAdder adder, int position = getPosition(connectionPosition, busOrBusbarSectionId, voltageLevelId, equipmentId, feederSide, network); ConnectablePositionAdder.FeederAdder feeder; switch (feederSide) { - case INJECTION -> feeder = adder.newFeeder(); + case INJECTION_SINGLE_SIDE -> feeder = adder.newFeeder(); case BRANCH_SIDE_ONE -> feeder = adder.newFeeder1(); case BRANCH_SIDE_TWO -> feeder = adder.newFeeder2(); default -> { @@ -799,7 +799,7 @@ private T getConnectionDetail(BasicEquipmentModificationInfos modificationIn private String getConnectionFieldName(FeederSide feederSide, String baseFieldName) { return switch (feederSide) { - case INJECTION -> baseFieldName; + case INJECTION_SINGLE_SIDE -> baseFieldName; case BRANCH_SIDE_ONE -> baseFieldName + " 1"; case BRANCH_SIDE_TWO -> baseFieldName + " 2"; }; @@ -880,7 +880,7 @@ private int getPosition(AttributeModification connectionPosition, String equipmentValue = equipmentId.getValue(); Terminal selectedTerminal = null; switch (feederSide) { - case INJECTION -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Injection injection ? injection.getTerminal() : null; + case INJECTION_SINGLE_SIDE -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Injection injection ? injection.getTerminal() : null; case BRANCH_SIDE_ONE -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Branch branch ? branch.getTerminal1() : null; case BRANCH_SIDE_TWO -> selectedTerminal = network.getIdentifiable(equipmentValue) instanceof Branch branch ? branch.getTerminal2() : null; }