diff --git a/src/main/java/org/gridsuite/modification/server/dto/formula/equipmentfield/VoltageLevelField.java b/src/main/java/org/gridsuite/modification/server/dto/formula/equipmentfield/VoltageLevelField.java index 3338e144f..07cc36476 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/formula/equipmentfield/VoltageLevelField.java +++ b/src/main/java/org/gridsuite/modification/server/dto/formula/equipmentfield/VoltageLevelField.java @@ -12,6 +12,9 @@ import org.gridsuite.modification.server.dto.AttributeModification; import org.gridsuite.modification.server.dto.OperationType; +import static org.gridsuite.modification.server.modifications.VoltageLevelModification.modifLowVoltageLimit; +import static org.gridsuite.modification.server.modifications.VoltageLevelModification.modifyHighVoltageLimit; +import static org.gridsuite.modification.server.modifications.VoltageLevelModification.modifyNominalV; import static org.gridsuite.modification.server.modifications.VoltageLevelModification.modifyVoltageLevelShortCircuit; /** @@ -40,9 +43,9 @@ public static Double getReferenceValue(VoltageLevel voltageLevel, String voltage public static void setNewValue(VoltageLevel voltageLevel, String voltageLevelField, Double newValue) { VoltageLevelField field = VoltageLevelField.valueOf(voltageLevelField); switch (field) { - case NOMINAL_VOLTAGE -> voltageLevel.setNominalV(newValue); - case LOW_VOLTAGE_LIMIT -> voltageLevel.setLowVoltageLimit(newValue); - case HIGH_VOLTAGE_LIMIT -> voltageLevel.setHighVoltageLimit(newValue); + case NOMINAL_VOLTAGE -> modifyNominalV(voltageLevel, new AttributeModification<>(newValue, OperationType.SET), null); + case LOW_VOLTAGE_LIMIT -> modifLowVoltageLimit(voltageLevel, new AttributeModification<>(newValue, OperationType.SET), null); + case HIGH_VOLTAGE_LIMIT -> modifyHighVoltageLimit(voltageLevel, new AttributeModification<>(newValue, OperationType.SET), null); case LOW_SHORT_CIRCUIT_CURRENT_LIMIT -> modifyVoltageLevelShortCircuit( new AttributeModification<>(newValue, OperationType.SET), null, null, voltageLevel); case HIGH_SHORT_CIRCUIT_CURRENT_LIMIT -> modifyVoltageLevelShortCircuit( diff --git a/src/main/java/org/gridsuite/modification/server/modifications/VoltageLevelModification.java b/src/main/java/org/gridsuite/modification/server/modifications/VoltageLevelModification.java index 5c243a233..b9c8ed2ec 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/VoltageLevelModification.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/VoltageLevelModification.java @@ -85,14 +85,26 @@ public void apply(Network network, ReportNode subReportNode) { .add(); ModificationUtils.getInstance().applyElementaryModifications(voltageLevel::setName, () -> voltageLevel.getOptionalName().orElse("No value"), modificationInfos.getEquipmentName(), subReportNode, "Name"); - ModificationUtils.getInstance().applyElementaryModifications(voltageLevel::setNominalV, voltageLevel::getNominalV, modificationInfos.getNominalV(), subReportNode, "Nominal voltage"); - ModificationUtils.getInstance().applyElementaryModifications(voltageLevel::setLowVoltageLimit, voltageLevel::getLowVoltageLimit, modificationInfos.getLowVoltageLimit(), subReportNode, "Low voltage limit"); - ModificationUtils.getInstance().applyElementaryModifications(voltageLevel::setHighVoltageLimit, voltageLevel::getHighVoltageLimit, modificationInfos.getHighVoltageLimit(), subReportNode, "High voltage limit"); + modifyNominalV(voltageLevel, modificationInfos.getNominalV(), subReportNode); + modifLowVoltageLimit(voltageLevel, modificationInfos.getLowVoltageLimit(), subReportNode); + modifyHighVoltageLimit(voltageLevel, modificationInfos.getHighVoltageLimit(), subReportNode); modifyVoltageLevelShortCircuit(modificationInfos.getIpMin(), modificationInfos.getIpMax(), subReportNode, voltageLevel); PropertiesUtils.applyProperties(voltageLevel, subReportNode, modificationInfos.getProperties(), "VlProperties"); } + public static void modifyHighVoltageLimit(VoltageLevel voltageLevel, AttributeModification highVoltageLimit, ReportNode subReportNode) { + ModificationUtils.getInstance().applyElementaryModifications(voltageLevel::setHighVoltageLimit, voltageLevel::getHighVoltageLimit, highVoltageLimit, subReportNode, "High voltage limit"); + } + + public static void modifLowVoltageLimit(VoltageLevel voltageLevel, AttributeModification lowVoltageLimit, ReportNode subReportNode) { + ModificationUtils.getInstance().applyElementaryModifications(voltageLevel::setLowVoltageLimit, voltageLevel::getLowVoltageLimit, lowVoltageLimit, subReportNode, "Low voltage limit"); + } + + public static void modifyNominalV(VoltageLevel voltageLevel, AttributeModification modifNominalV, ReportNode subReportNode) { + ModificationUtils.getInstance().applyElementaryModifications(voltageLevel::setNominalV, voltageLevel::getNominalV, modifNominalV, subReportNode, "Nominal voltage"); + } + public static void modifyVoltageLevelShortCircuit(AttributeModification ipMin, AttributeModification ipMax, ReportNode subReportNode,