diff --git a/src/main/java/org/gridsuite/modification/NetworkModificationException.java b/src/main/java/org/gridsuite/modification/NetworkModificationException.java index c7264529..0efea270 100644 --- a/src/main/java/org/gridsuite/modification/NetworkModificationException.java +++ b/src/main/java/org/gridsuite/modification/NetworkModificationException.java @@ -79,7 +79,6 @@ public enum Type { TWO_WINDINGS_TRANSFORMER_CREATION_ERROR(HttpStatus.BAD_REQUEST), BRANCH_MODIFICATION_ERROR(HttpStatus.INTERNAL_SERVER_ERROR), INJECTION_MODIFICATION_ERROR(HttpStatus.INTERNAL_SERVER_ERROR), - CONNECTION_POSITION_ERROR(HttpStatus.BAD_REQUEST), MODIFY_BATTERY_ERROR(HttpStatus.INTERNAL_SERVER_ERROR), OPERATING_STATUS_MODIFICATION_ERROR(HttpStatus.INTERNAL_SERVER_ERROR), OPERATING_ACTION_TYPE_EMPTY(HttpStatus.BAD_REQUEST, "Empty operating action type"), @@ -95,7 +94,6 @@ public enum Type { TYPE_MISMATCH(HttpStatus.BAD_REQUEST), MISSING_MODIFICATION_DESCRIPTION(HttpStatus.BAD_REQUEST), MODIFICATION_OUT_OF_RANGE(HttpStatus.BAD_REQUEST), - POSITION_ORDER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR), DELETE_VOLTAGE_LEVEL_ON_LINE_ERROR(HttpStatus.INTERNAL_SERVER_ERROR), DELETE_VOLTAGE_LEVEL_ON_LINE_NOT_FOUND(HttpStatus.NOT_FOUND), EQUIPMENT_ATTRIBUTE_NAME_ERROR(HttpStatus.BAD_REQUEST), diff --git a/src/main/java/org/gridsuite/modification/modifications/BatteryCreation.java b/src/main/java/org/gridsuite/modification/modifications/BatteryCreation.java index 180eca3d..c3eea688 100644 --- a/src/main/java/org/gridsuite/modification/modifications/BatteryCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/BatteryCreation.java @@ -45,7 +45,7 @@ public void check(Network network) throws NetworkModificationException { // check connectivity ModificationUtils.getInstance() .controlConnectivity(network, modificationInfos.getVoltageLevelId(), - modificationInfos.getBusOrBusbarSectionId(), modificationInfos.getConnectionPosition()); + modificationInfos.getBusOrBusbarSectionId()); // check reactive limits ModificationUtils.getInstance().checkReactiveLimitsCreation(modificationInfos, diff --git a/src/main/java/org/gridsuite/modification/modifications/GeneratorCreation.java b/src/main/java/org/gridsuite/modification/modifications/GeneratorCreation.java index 0e59a5c8..6fd4c161 100644 --- a/src/main/java/org/gridsuite/modification/modifications/GeneratorCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/GeneratorCreation.java @@ -48,7 +48,7 @@ public void check(Network network) throws NetworkModificationException { // check connectivity ModificationUtils.getInstance().controlConnectivity(network, modificationInfos.getVoltageLevelId(), - modificationInfos.getBusOrBusbarSectionId(), modificationInfos.getConnectionPosition()); + modificationInfos.getBusOrBusbarSectionId()); // check reactive limits ModificationUtils.getInstance().checkReactiveLimitsCreation(modificationInfos, diff --git a/src/main/java/org/gridsuite/modification/modifications/LccCreation.java b/src/main/java/org/gridsuite/modification/modifications/LccCreation.java index 3e957cb0..37190b43 100644 --- a/src/main/java/org/gridsuite/modification/modifications/LccCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/LccCreation.java @@ -63,8 +63,8 @@ private void checkLccConverterStation(Network network, LccConverterStationCreati // check connectivity ModificationUtils.getInstance().controlConnectivity(network, converterStation.getVoltageLevelId(), - converterStation.getBusOrBusbarSectionId(), - converterStation.getConnectionPosition()); + converterStation.getBusOrBusbarSectionId() + ); } @Override diff --git a/src/main/java/org/gridsuite/modification/modifications/LineCreation.java b/src/main/java/org/gridsuite/modification/modifications/LineCreation.java index b7f8636a..7ca39d1e 100644 --- a/src/main/java/org/gridsuite/modification/modifications/LineCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/LineCreation.java @@ -45,8 +45,8 @@ public void check(Network network) throws NetworkModificationException { } String errorMessage = "Line '" + modificationInfos.getEquipmentId() + "' : "; ModificationUtils.getInstance().controlBranchCreation(network, - modificationInfos.getVoltageLevelId1(), modificationInfos.getBusOrBusbarSectionId1(), modificationInfos.getConnectionPosition1(), - modificationInfos.getVoltageLevelId2(), modificationInfos.getBusOrBusbarSectionId2(), modificationInfos.getConnectionPosition2()); + modificationInfos.getVoltageLevelId1(), modificationInfos.getBusOrBusbarSectionId1(), + modificationInfos.getVoltageLevelId2(), modificationInfos.getBusOrBusbarSectionId2()); checkIsNotNegativeValue(errorMessage, modificationInfos.getR(), CREATE_LINE_ERROR, "Resistance R"); checkIsNotNegativeValue(errorMessage, modificationInfos.getG1(), CREATE_LINE_ERROR, "Conductance on side 1 G1"); checkIsNotNegativeValue(errorMessage, modificationInfos.getG2(), CREATE_LINE_ERROR, "Conductance on side 2 G2"); diff --git a/src/main/java/org/gridsuite/modification/modifications/LoadCreation.java b/src/main/java/org/gridsuite/modification/modifications/LoadCreation.java index 435d5dd6..821fe26b 100644 --- a/src/main/java/org/gridsuite/modification/modifications/LoadCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/LoadCreation.java @@ -34,7 +34,7 @@ public void check(Network network) throws NetworkModificationException { throw new NetworkModificationException(LOAD_ALREADY_EXISTS, modificationInfos.getEquipmentId()); } ModificationUtils.getInstance().controlConnectivity(network, modificationInfos.getVoltageLevelId(), - modificationInfos.getBusOrBusbarSectionId(), modificationInfos.getConnectionPosition()); + modificationInfos.getBusOrBusbarSectionId()); } @Override diff --git a/src/main/java/org/gridsuite/modification/modifications/ShuntCompensatorCreation.java b/src/main/java/org/gridsuite/modification/modifications/ShuntCompensatorCreation.java index 5f46bc62..7931eed2 100644 --- a/src/main/java/org/gridsuite/modification/modifications/ShuntCompensatorCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/ShuntCompensatorCreation.java @@ -46,7 +46,7 @@ public void check(Network network) throws NetworkModificationException { modificationInfos.getSectionCount())); } ModificationUtils.getInstance().controlConnectivity(network, modificationInfos.getVoltageLevelId(), - modificationInfos.getBusOrBusbarSectionId(), modificationInfos.getConnectionPosition()); + modificationInfos.getBusOrBusbarSectionId()); } @Override diff --git a/src/main/java/org/gridsuite/modification/modifications/StaticVarCompensatorCreation.java b/src/main/java/org/gridsuite/modification/modifications/StaticVarCompensatorCreation.java index 59b6223f..4fa0abc1 100644 --- a/src/main/java/org/gridsuite/modification/modifications/StaticVarCompensatorCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/StaticVarCompensatorCreation.java @@ -46,7 +46,7 @@ public void check(Network network) throws NetworkModificationException { // check connectivity ModificationUtils.getInstance() .controlConnectivity(network, modificationInfos.getVoltageLevelId(), - modificationInfos.getBusOrBusbarSectionId(), modificationInfos.getConnectionPosition()); + modificationInfos.getBusOrBusbarSectionId()); // check reactive power limits and set points ModificationUtils.getInstance().checkReactivePowerLimitsAndSetPointsCreation(modificationInfos); diff --git a/src/main/java/org/gridsuite/modification/modifications/TwoWindingsTransformerCreation.java b/src/main/java/org/gridsuite/modification/modifications/TwoWindingsTransformerCreation.java index e8fc9b8d..9b31f94f 100644 --- a/src/main/java/org/gridsuite/modification/modifications/TwoWindingsTransformerCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/TwoWindingsTransformerCreation.java @@ -41,8 +41,8 @@ public void check(Network network) throws NetworkModificationException { } String errorMessage = "Two windings transformer '" + modificationInfos.getEquipmentId() + "' : "; getInstance().controlBranchCreation(network, - modificationInfos.getVoltageLevelId1(), modificationInfos.getBusOrBusbarSectionId1(), modificationInfos.getConnectionPosition1(), - modificationInfos.getVoltageLevelId2(), modificationInfos.getBusOrBusbarSectionId2(), modificationInfos.getConnectionPosition2()); + modificationInfos.getVoltageLevelId1(), modificationInfos.getBusOrBusbarSectionId1(), + modificationInfos.getVoltageLevelId2(), modificationInfos.getBusOrBusbarSectionId2()); checkIsNotNegativeValue(errorMessage, modificationInfos.getR(), CREATE_TWO_WINDINGS_TRANSFORMER_ERROR, "Resistance R"); checkIsNotNegativeValue(errorMessage, modificationInfos.getG(), CREATE_TWO_WINDINGS_TRANSFORMER_ERROR, "Conductance G"); checkIsNotNegativeValue(errorMessage, modificationInfos.getRatedU1(), CREATE_TWO_WINDINGS_TRANSFORMER_ERROR, "Rated Voltage on side 1"); diff --git a/src/main/java/org/gridsuite/modification/modifications/VscCreation.java b/src/main/java/org/gridsuite/modification/modifications/VscCreation.java index d8a8c272..5a5c19b6 100644 --- a/src/main/java/org/gridsuite/modification/modifications/VscCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/VscCreation.java @@ -83,8 +83,8 @@ private void checkConverterStation(Network network, // check connectivity ModificationUtils.getInstance().controlConnectivity(network, converterStation.getVoltageLevelId(), - converterStation.getBusOrBusbarSectionId(), - converterStation.getConnectionPosition()); + converterStation.getBusOrBusbarSectionId() + ); // check reactive limits ModificationUtils.getInstance().checkReactiveLimitsCreation(converterStation, diff --git a/src/main/java/org/gridsuite/modification/utils/ModificationUtils.java b/src/main/java/org/gridsuite/modification/utils/ModificationUtils.java index f1442aee..44dbdbab 100644 --- a/src/main/java/org/gridsuite/modification/utils/ModificationUtils.java +++ b/src/main/java/org/gridsuite/modification/utils/ModificationUtils.java @@ -167,20 +167,9 @@ public StaticVarCompensator getStaticVarCompensator(Network network, String stat return staticVarCompensator; } - public void controlConnectivity(Network network, String voltageLevelId, String busOrBusbarSectionId, Integer connectionPosition) { + public void controlConnectivity(Network network, String voltageLevelId, String busOrBusbarSectionId) { VoltageLevel voltageLevel = getVoltageLevel(network, voltageLevelId); - if (voltageLevel.getTopologyKind() == TopologyKind.NODE_BREAKER) { - // bus bar section must exist - controlBus(voltageLevel, busOrBusbarSectionId); - // check if position is free - Set takenFeederPositions = TopologyModificationUtils.getFeederPositions(voltageLevel); - if (takenFeederPositions.contains(connectionPosition)) { - throw new NetworkModificationException(CONNECTION_POSITION_ERROR, "PositionOrder '" + connectionPosition + "' already taken"); - } - } else { - // bus breaker must exist - controlBus(voltageLevel, busOrBusbarSectionId); - } + controlBus(voltageLevel, busOrBusbarSectionId); } public void controlBus(VoltageLevel voltageLevel, String busOrBusbarSectionId) { @@ -191,16 +180,16 @@ public void controlBus(VoltageLevel voltageLevel, String busOrBusbarSectionId) { } } - public void controlBranchCreation(Network network, String voltageLevelId1, String busOrBusbarSectionId1, Integer connectionPosition1, - String voltageLevelId2, String busOrBusbarSectionId2, Integer connectionPosition2) { + public void controlBranchCreation(Network network, String voltageLevelId1, String busOrBusbarSectionId1, + String voltageLevelId2, String busOrBusbarSectionId2) { VoltageLevel voltageLevel1 = getVoltageLevel(network, voltageLevelId1); VoltageLevel voltageLevel2 = getVoltageLevel(network, voltageLevelId2); if (voltageLevel1.getTopologyKind() == TopologyKind.NODE_BREAKER && voltageLevel2.getTopologyKind() == TopologyKind.NODE_BREAKER) { controlConnectivity(network, voltageLevelId1, - busOrBusbarSectionId1, connectionPosition1); + busOrBusbarSectionId1); controlConnectivity(network, voltageLevelId2, - busOrBusbarSectionId2, connectionPosition2); + busOrBusbarSectionId2); } else { // bus or mixed mode controlBus(voltageLevel1, busOrBusbarSectionId1); @@ -234,8 +223,6 @@ public int getPosition(String busOrBusbarSectionId, Network network, VoltageLeve var leftRange = TopologyModificationUtils.getUnusedOrderPositionsBefore(bbs); if (leftRange.isPresent()) { position = leftRange.get().getMaximum(); - } else { - throw new NetworkModificationException(POSITION_ORDER_ERROR, "no available position"); } } } @@ -1766,6 +1753,7 @@ public static void createInjectionInNodeBreaker(VoltageLevel voltageLevel, Injec : injectionCreationInfos.getEquipmentId()) .withInjectionPositionOrder(position) .withInjectionAdder(injectionAdder) + .withLogOrThrowIfIncorrectPositionOrder(false) .build(); algo.apply(network, true, subReportNode); } diff --git a/src/test/java/org/gridsuite/modification/modifications/ShuntCompensatorCreationInNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/modifications/ShuntCompensatorCreationInNodeBreakerTest.java index d1c13549..679cbac4 100644 --- a/src/test/java/org/gridsuite/modification/modifications/ShuntCompensatorCreationInNodeBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/ShuntCompensatorCreationInNodeBreakerTest.java @@ -79,12 +79,6 @@ protected void checkModification() { modificationToCreate.setSectionCount(3); exception = assertThrows(NetworkModificationException.class, () -> modificationToCreate.toModification().check(getNetwork())); assertEquals("CREATE_SHUNT_COMPENSATOR_ERROR : Section count should be between 0 and Maximum section count (2), actual : 3", exception.getMessage()); - - // CreateWithExistingConnectionPosition - ShuntCompensatorCreationInfos dto = (ShuntCompensatorCreationInfos) buildModification(); - dto.setConnectionPosition(2); - exception = assertThrows(NetworkModificationException.class, () -> dto.toModification().check(getNetwork())); - assertEquals("CONNECTION_POSITION_ERROR : PositionOrder '2' already taken", exception.getMessage()); } @Override