From a7ad2fa50a5e30ecc3f19b2fc39a6a06a264106c Mon Sep 17 00:00:00 2001 From: Joris Mancini Date: Wed, 2 Sep 2026 18:18:22 +0200 Subject: [PATCH 1/6] refactor: move createSubReportNode to AbstractModification Signed-off-by: Joris Mancini --- .../modification/modifications/ByFilterDeletion.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java b/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java index 5193ebc0..5ab2540b 100644 --- a/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java +++ b/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java @@ -101,6 +101,11 @@ public void apply(Network network, ReportNode subReportNode) { } } + @Override + public ReportNode createSubReportNode(ReportNode reportNode) { + return reportNode.newReportNode().withMessageTemplate("network.modification.byFilter.deletion").add(); + } + @Override public String getName() { return ModificationType.BY_FILTER_DELETION.name(); From 01cee48a6ff9b80428670f963c415e5545fd5b14 Mon Sep 17 00:00:00 2001 From: Joris Mancini Date: Wed, 2 Sep 2026 18:31:47 +0200 Subject: [PATCH 2/6] make composite modification standalone Signed-off-by: Joris Mancini --- .../dto/CompositeModificationInfos.java | 10 +++- .../modifications/CompositeModification.java | 50 ++++++++----------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/dto/CompositeModificationInfos.java b/src/main/java/org/gridsuite/modification/dto/CompositeModificationInfos.java index 92382287..1e1ea669 100644 --- a/src/main/java/org/gridsuite/modification/dto/CompositeModificationInfos.java +++ b/src/main/java/org/gridsuite/modification/dto/CompositeModificationInfos.java @@ -47,7 +47,15 @@ public class CompositeModificationInfos extends ModificationInfos { @Override public AbstractModification toModification() { - return new CompositeModification(this); + return CompositeModification.builder() + .name(name) + .maxDepth(maxDepth) + .modificationsInfos(modificationsInfos.stream() + .filter(modificationInfos -> Boolean.TRUE.equals(modificationInfos.getActivated()) + && Boolean.FALSE.equals(modificationInfos.getStashed())) + .map(ModificationInfos::toModification) + .toList()) + .build(); } @Override diff --git a/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java b/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java index dc0e95ef..a58ec0ce 100644 --- a/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java +++ b/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java @@ -6,22 +6,19 @@ */ package org.gridsuite.modification.modifications; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.powsybl.commons.report.ReportNode; import com.powsybl.commons.report.TypedValue; import com.powsybl.iidm.modification.topology.DefaultNamingStrategy; import com.powsybl.iidm.modification.topology.NamingStrategy; import com.powsybl.iidm.network.Network; -import lombok.AccessLevel; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; +import lombok.*; import org.gridsuite.modification.IFilterService; import org.gridsuite.modification.ILoadFlowService; import org.gridsuite.modification.ModificationType; -import org.gridsuite.modification.dto.CompositeModificationInfos; import org.gridsuite.modification.report.NetworkModificationReportResourceBundle; +import java.util.List; + import static org.gridsuite.modification.modifications.byfilter.AbstractModificationByAssignment.VALUE_KEY_ERROR_MESSAGE; /** @@ -29,28 +26,26 @@ */ @Getter +@Setter @EqualsAndHashCode(callSuper = true) @NoArgsConstructor(access = AccessLevel.PRIVATE) public class CompositeModification extends AbstractModification { - private CompositeModificationInfos compositeModificationInfos; - - @JsonIgnore - @EqualsAndHashCode.Exclude - protected IFilterService filterService; - - @JsonIgnore - @EqualsAndHashCode.Exclude - protected ILoadFlowService loadFlowService; + private String compositeName; + private Integer maxDepth; + private List modificationsInfos; - public CompositeModification(CompositeModificationInfos compositeModificationInfos) { - this.compositeModificationInfos = compositeModificationInfos; + @Builder + public CompositeModification(String name, Integer maxDepth, List modificationsInfos) { + this.compositeName = name; + this.maxDepth = maxDepth; + this.modificationsInfos = modificationsInfos; } @Override - protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { - this.filterService = filterService; - this.loadFlowService = loadFlowService; + public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { + modificationsInfos.forEach(modif -> + modif.initApplicationContext(filterService, loadFlowService)); } @Override @@ -60,23 +55,20 @@ public void apply(Network network, ReportNode subReportNode) { @Override public void apply(Network network, NamingStrategy namingStrategy, ReportNode subReportNode) { - compositeModificationInfos.getModificationsInfos().stream() - .filter(modificationInfos -> modificationInfos.isActivatedOn(getRootNetworkTag())) + modificationsInfos .forEach( modif -> { - AbstractModification modification = modif.toModification(); - ReportNode modifNode = modification.createSubReportNode(subReportNode); + ReportNode modifNode = modif.createSubReportNode(subReportNode); try { - modification.check(network); - modification.initApplicationContext(filterService, loadFlowService, getRootNetworkTag()); - modification.apply(network, namingStrategy, modifNode); + modif.check(network); + modif.apply(network, namingStrategy, modifNode); } catch (Exception e) { // in case of error in a network modification, the composite modification doesn't interrupt its execution : // the following modifications will be carried out modifNode.newReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("network.modification.composite.exception.report") - .withUntypedValue("modificationName", modification.getName()) + .withUntypedValue("modificationName", modif.getName()) .withUntypedValue(VALUE_KEY_ERROR_MESSAGE, e.getMessage()) .withSeverity(TypedValue.ERROR_SEVERITY) .add(); @@ -89,7 +81,7 @@ public void apply(Network network, NamingStrategy namingStrategy, ReportNode sub public ReportNode createSubReportNode(ReportNode reportNode) { return reportNode.newReportNode() .withMessageTemplate("network.modification.composite.apply") - .withUntypedValue("modificationName", compositeModificationInfos.getName()) + .withUntypedValue("modificationName", compositeName) .add(); } From f80e0c324bcf093d3b3885ae22e0d06d66b68c69 Mon Sep 17 00:00:00 2001 From: Joris Mancini Date: Wed, 2 Sep 2026 18:38:16 +0200 Subject: [PATCH 3/6] make reference modification standalone Signed-off-by: Joris Mancini --- .../dto/ModificationReferenceInfos.java | 3 +- .../modifications/ModificationReference.java | 37 +++++-------------- 2 files changed, 10 insertions(+), 30 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/dto/ModificationReferenceInfos.java b/src/main/java/org/gridsuite/modification/dto/ModificationReferenceInfos.java index 8db56b7d..aac898a6 100644 --- a/src/main/java/org/gridsuite/modification/dto/ModificationReferenceInfos.java +++ b/src/main/java/org/gridsuite/modification/dto/ModificationReferenceInfos.java @@ -53,9 +53,8 @@ public enum Type { @Override public AbstractModification toModification() { return ModificationReference.builder() - .referenceId(getReferenceId()) .referenceType(getReferenceType()) - .referenceInfos(getReferenceInfos()) + .referenceModification(getReferenceInfos().toModification()) .build(); } diff --git a/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java b/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java index bb308cf0..956e823e 100644 --- a/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java +++ b/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java @@ -6,7 +6,6 @@ */ package org.gridsuite.modification.modifications; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.powsybl.commons.report.ReportNode; import com.powsybl.iidm.modification.topology.DefaultNamingStrategy; import com.powsybl.iidm.modification.topology.NamingStrategy; @@ -15,11 +14,9 @@ import org.gridsuite.modification.IFilterService; import org.gridsuite.modification.ILoadFlowService; import org.gridsuite.modification.ModificationType; -import org.gridsuite.modification.dto.ModificationInfos; import org.gridsuite.modification.dto.ModificationReferenceInfos; import java.util.Objects; -import java.util.UUID; /** * @author Slimane Amar @@ -30,40 +27,27 @@ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class ModificationReference extends AbstractModification { - private UUID referenceId; private ModificationReferenceInfos.Type referenceType; - private ModificationInfos referenceInfos; - - @JsonIgnore - @EqualsAndHashCode.Exclude - protected IFilterService filterService; - - @JsonIgnore - @EqualsAndHashCode.Exclude - protected ILoadFlowService loadFlowService; + private AbstractModification referenceModification; @Builder - public ModificationReference(UUID referenceId, - ModificationReferenceInfos.Type referenceType, - ModificationInfos referenceInfos) { - this.referenceId = referenceId; + public ModificationReference(ModificationReferenceInfos.Type referenceType, + AbstractModification referenceModification) { this.referenceType = referenceType; - this.referenceInfos = referenceInfos; + this.referenceModification = referenceModification; } @Override - protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { - this.filterService = filterService; - this.loadFlowService = loadFlowService; + public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { + referenceModification.initApplicationContext(filterService, loadFlowService); } @Override public void check(Network network) { super.check(network); - Objects.requireNonNull(referenceId, "referenceId is required"); Objects.requireNonNull(referenceType, "referenceType is required"); - Objects.requireNonNull(referenceInfos, "referenceInfos is required"); - referenceInfos.check(); + Objects.requireNonNull(referenceModification, "referenceInfos is required"); + referenceModification.check(network); } @Override @@ -73,10 +57,7 @@ public void apply(Network network, ReportNode subReportNode) { @Override public void apply(Network network, NamingStrategy namingStrategy, ReportNode subReportNode) { - AbstractModification modification = referenceInfos.toModification(); - modification.check(network); - modification.initApplicationContext(filterService, loadFlowService, getRootNetworkTag()); - modification.apply(network, namingStrategy, modification.createSubReportNode(subReportNode)); + referenceModification.apply(network, namingStrategy, referenceModification.createSubReportNode(subReportNode)); } @Override From 15289c146524df65f62be20a692bc6af947bd241 Mon Sep 17 00:00:00 2001 From: Joris Mancini Date: Thu, 3 Sep 2026 09:26:40 +0200 Subject: [PATCH 4/6] make tabular modifications standalone Signed-off-by: Joris Mancini --- .../dto/tabular/TabularBaseInfos.java | 14 ------ .../dto/tabular/TabularCreationInfos.java | 10 +++- .../dto/tabular/TabularModificationInfos.java | 10 +++- .../modifications/ByFilterDeletion.java | 5 -- .../modifications/CompositeModification.java | 4 +- .../modifications/ModificationReference.java | 4 +- .../tabular/AbstractTabularModification.java | 50 ++++++++++++------- .../tabular/TabularCreation.java | 24 +++++---- .../tabular/TabularModification.java | 24 +++++---- ...ularShuntCompensatorModificationsTest.java | 11 ++-- 10 files changed, 89 insertions(+), 67 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/dto/tabular/TabularBaseInfos.java b/src/main/java/org/gridsuite/modification/dto/tabular/TabularBaseInfos.java index 54eb2980..8f55386e 100644 --- a/src/main/java/org/gridsuite/modification/dto/tabular/TabularBaseInfos.java +++ b/src/main/java/org/gridsuite/modification/dto/tabular/TabularBaseInfos.java @@ -42,18 +42,4 @@ public class TabularBaseInfos extends ModificationInfos { @Schema(description = "modifications") @JsonInclude(JsonInclude.Include.NON_NULL) private List modifications; - - public String formatEquipmentTypeName() { - return switch (getModificationType()) { - case GENERATOR_CREATION, GENERATOR_MODIFICATION -> getModifications().size() > 1 ? "generators" : "generator"; - case LOAD_CREATION, LOAD_MODIFICATION -> getModifications().size() > 1 ? "loads" : "load"; - case SHUNT_COMPENSATOR_CREATION, SHUNT_COMPENSATOR_MODIFICATION -> getModifications().size() > 1 ? "shunt compensators" : "shunt compensator"; - case BATTERY_CREATION, BATTERY_MODIFICATION -> getModifications().size() > 1 ? "batteries" : "battery"; - case TWO_WINDINGS_TRANSFORMER_MODIFICATION -> getModifications().size() > 1 ? "two windings transformers" : "two windings transformer"; - case VOLTAGE_LEVEL_MODIFICATION -> getModifications().size() > 1 ? "voltage levels" : "voltage level"; - case LINE_MODIFICATION -> getModifications().size() > 1 ? "lines" : "line"; - case SUBSTATION_MODIFICATION -> getModifications().size() > 1 ? "substations" : "substation"; - default -> "equipments of unknown type"; - }; - } } diff --git a/src/main/java/org/gridsuite/modification/dto/tabular/TabularCreationInfos.java b/src/main/java/org/gridsuite/modification/dto/tabular/TabularCreationInfos.java index 169a4dc0..28949585 100644 --- a/src/main/java/org/gridsuite/modification/dto/tabular/TabularCreationInfos.java +++ b/src/main/java/org/gridsuite/modification/dto/tabular/TabularCreationInfos.java @@ -12,6 +12,8 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import org.gridsuite.modification.dto.ModificationInfos; +import org.gridsuite.modification.modifications.AbstractEquipmentBase; import org.gridsuite.modification.modifications.AbstractModification; import org.gridsuite.modification.modifications.tabular.TabularCreation; @@ -31,7 +33,13 @@ public class TabularCreationInfos extends TabularBaseInfos { @Override public AbstractModification toModification() { - return new TabularCreation(this); + return TabularCreation.builder() + .modificationType(getModificationType()) + .modifications(getModifications().stream() + .map(ModificationInfos::toModification) + .map(m -> (AbstractEquipmentBase) m) + .toList()) + .build(); } @Override diff --git a/src/main/java/org/gridsuite/modification/dto/tabular/TabularModificationInfos.java b/src/main/java/org/gridsuite/modification/dto/tabular/TabularModificationInfos.java index efd9249c..159baac3 100644 --- a/src/main/java/org/gridsuite/modification/dto/tabular/TabularModificationInfos.java +++ b/src/main/java/org/gridsuite/modification/dto/tabular/TabularModificationInfos.java @@ -10,6 +10,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.experimental.SuperBuilder; +import org.gridsuite.modification.dto.ModificationInfos; +import org.gridsuite.modification.modifications.AbstractEquipmentBase; import org.gridsuite.modification.modifications.AbstractModification; import org.gridsuite.modification.modifications.tabular.TabularModification; import java.util.HashMap; @@ -27,7 +29,13 @@ public class TabularModificationInfos extends TabularBaseInfos { @Override public AbstractModification toModification() { - return new TabularModification(this); + return TabularModification.builder() + .modificationType(getModificationType()) + .modifications(getModifications().stream() + .map(ModificationInfos::toModification) + .map(m -> (AbstractEquipmentBase) m) + .toList()) + .build(); } @Override diff --git a/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java b/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java index 5ab2540b..5193ebc0 100644 --- a/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java +++ b/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java @@ -101,11 +101,6 @@ public void apply(Network network, ReportNode subReportNode) { } } - @Override - public ReportNode createSubReportNode(ReportNode reportNode) { - return reportNode.newReportNode().withMessageTemplate("network.modification.byFilter.deletion").add(); - } - @Override public String getName() { return ModificationType.BY_FILTER_DELETION.name(); diff --git a/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java b/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java index a58ec0ce..ec9c98f6 100644 --- a/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java +++ b/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java @@ -43,9 +43,9 @@ public CompositeModification(String name, Integer maxDepth, List - modif.initApplicationContext(filterService, loadFlowService)); + modif.initServices(filterService, loadFlowService)); } @Override diff --git a/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java b/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java index 956e823e..f4b1417b 100644 --- a/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java +++ b/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java @@ -38,8 +38,8 @@ public ModificationReference(ModificationReferenceInfos.Type referenceType, } @Override - public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { - referenceModification.initApplicationContext(filterService, loadFlowService); + protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { + referenceModification.initServices(filterService, loadFlowService); } @Override diff --git a/src/main/java/org/gridsuite/modification/modifications/tabular/AbstractTabularModification.java b/src/main/java/org/gridsuite/modification/modifications/tabular/AbstractTabularModification.java index 542ed935..ef4792f5 100644 --- a/src/main/java/org/gridsuite/modification/modifications/tabular/AbstractTabularModification.java +++ b/src/main/java/org/gridsuite/modification/modifications/tabular/AbstractTabularModification.java @@ -10,17 +10,19 @@ import com.powsybl.commons.report.TypedValue; import com.powsybl.iidm.network.Network; import lombok.*; -import org.gridsuite.modification.dto.EquipmentModificationInfos; -import org.gridsuite.modification.dto.tabular.TabularBaseInfos; +import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.modifications.AbstractEquipmentBase; import org.gridsuite.modification.modifications.AbstractModification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.List; + /** * @author David Braquart */ -@Setter @Getter +@Setter @EqualsAndHashCode(callSuper = true) @NoArgsConstructor(access = AccessLevel.PROTECTED) public abstract class AbstractTabularModification extends AbstractModification { @@ -29,13 +31,15 @@ public abstract class AbstractTabularModification extends AbstractModification { protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractTabularModification.class); - protected TabularBaseInfos modificationInfos; + protected ModificationType modificationType; + protected List modifications; - protected AbstractTabularModification(TabularBaseInfos modificationInfos) { - this.modificationInfos = modificationInfos; + protected AbstractTabularModification(ModificationType modificationType, List modifications) { + this.modificationType = modificationType; + this.modifications = modifications; } - public abstract void specificCheck(EquipmentModificationInfos equipmentModificationInfos, Network network, ReportNode subReportNode); + public abstract void specificCheck(AbstractEquipmentBase equipmentModificationInfos, Network network, ReportNode subReportNode); public abstract String defaultMessage(); @@ -44,18 +48,16 @@ protected AbstractTabularModification(TabularBaseInfos modificationInfos) { @Override public void apply(Network network, ReportNode subReportNode) { int applicationFailuresCount = 0; - for (var modifInfos : modificationInfos.getModifications()) { - EquipmentModificationInfos equipmentModificationInfos = (EquipmentModificationInfos) modifInfos; + for (var modifInfos : modifications) { ReportNode modifReportNode = subReportNode.newReportNode() .withMessageTemplate(baseTemplateMessage() + ".equipmentId") - .withUntypedValue("equipmentId", equipmentModificationInfos.getEquipmentId()) + .withUntypedValue("equipmentId", modifInfos.getEquipmentId()) .withSeverity(TypedValue.INFO_SEVERITY) .add(); try { - AbstractModification modification = equipmentModificationInfos.toModification(); - modification.check(network); - specificCheck(equipmentModificationInfos, network, modifReportNode); - modification.apply(network, modifReportNode); + modifInfos.check(network); + specificCheck(modifInfos, network, modifReportNode); + modifInfos.apply(network, modifReportNode); } catch (Exception e) { applicationFailuresCount++; ReportNode errorReportNode = modifReportNode.newReportNode() @@ -70,7 +72,7 @@ public void apply(Network network, ReportNode subReportNode) { LOGGER.warn(e.getMessage()); } } - if (modificationInfos.getModifications().size() == applicationFailuresCount) { + if (modifications.size() == applicationFailuresCount) { subReportNode.newReportNode() .withMessageTemplate(baseTemplateMessage() + ".error") .withUntypedValue(DEFAULT_MESSAGE_KEY, defaultMessage()) @@ -79,7 +81,7 @@ public void apply(Network network, ReportNode subReportNode) { } else if (applicationFailuresCount > 0) { subReportNode.newReportNode() .withMessageTemplate(baseTemplateMessage() + ".partial") - .withUntypedValue("modificationsCount", modificationInfos.getModifications().size() - applicationFailuresCount) + .withUntypedValue("modificationsCount", modifications.size() - applicationFailuresCount) .withUntypedValue("failuresCount", applicationFailuresCount) .withUntypedValue(DEFAULT_MESSAGE_KEY, defaultMessage()) .withSeverity(TypedValue.ERROR_SEVERITY) @@ -87,10 +89,24 @@ public void apply(Network network, ReportNode subReportNode) { } else { subReportNode.newReportNode() .withMessageTemplate(baseTemplateMessage()) - .withUntypedValue("modificationsCount", modificationInfos.getModifications().size()) + .withUntypedValue("modificationsCount", modifications.size()) .withUntypedValue(DEFAULT_MESSAGE_KEY, defaultMessage()) .withSeverity(TypedValue.INFO_SEVERITY) .add(); } } + + public String formatEquipmentTypeName() { + return switch (getModificationType()) { + case GENERATOR_CREATION, GENERATOR_MODIFICATION -> modifications.size() > 1 ? "generators" : "generator"; + case LOAD_CREATION, LOAD_MODIFICATION -> modifications.size() > 1 ? "loads" : "load"; + case SHUNT_COMPENSATOR_CREATION, SHUNT_COMPENSATOR_MODIFICATION -> modifications.size() > 1 ? "shunt compensators" : "shunt compensator"; + case BATTERY_CREATION, BATTERY_MODIFICATION -> modifications.size() > 1 ? "batteries" : "battery"; + case TWO_WINDINGS_TRANSFORMER_MODIFICATION -> modifications.size() > 1 ? "two windings transformers" : "two windings transformer"; + case VOLTAGE_LEVEL_MODIFICATION -> modifications.size() > 1 ? "voltage levels" : "voltage level"; + case LINE_MODIFICATION -> modifications.size() > 1 ? "lines" : "line"; + case SUBSTATION_MODIFICATION -> modifications.size() > 1 ? "substations" : "substation"; + default -> modifications.size() > 1 ? "equipments of unknown type" : "equipment of unknown type"; + }; + } } diff --git a/src/main/java/org/gridsuite/modification/modifications/tabular/TabularCreation.java b/src/main/java/org/gridsuite/modification/modifications/tabular/TabularCreation.java index c72fb69a..87bcdde2 100644 --- a/src/main/java/org/gridsuite/modification/modifications/tabular/TabularCreation.java +++ b/src/main/java/org/gridsuite/modification/modifications/tabular/TabularCreation.java @@ -10,13 +10,16 @@ import com.powsybl.commons.report.TypedValue; import com.powsybl.iidm.network.Network; import lombok.AccessLevel; +import lombok.Builder; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import org.gridsuite.modification.ModificationType; -import org.gridsuite.modification.dto.EquipmentModificationInfos; -import org.gridsuite.modification.dto.ShuntCompensatorCreationInfos; -import org.gridsuite.modification.dto.tabular.TabularCreationInfos; import org.gridsuite.modification.error.NetworkModificationException; +import org.gridsuite.modification.modifications.AbstractEquipmentBase; +import org.gridsuite.modification.modifications.ShuntCompensatorCreation; + +import java.util.List; + import static org.gridsuite.modification.error.NetworkModificationExceptionType.TABULAR_CREATION_ERROR; /** @@ -26,13 +29,14 @@ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class TabularCreation extends AbstractTabularModification { - public TabularCreation(TabularCreationInfos modificationInfos) { - super(modificationInfos); + @Builder + public TabularCreation(ModificationType modificationType, List modifications) { + super(modificationType, modifications); } @Override public void check(Network network) throws NetworkModificationException { - if (modificationInfos == null) { + if (modifications == null) { throw new NetworkModificationException(TABULAR_CREATION_ERROR, "No tabular creation to apply !!"); } } @@ -41,7 +45,7 @@ public void check(Network network) throws NetworkModificationException { public ReportNode createSubReportNode(ReportNode reportNode) { return reportNode.newReportNode() .withMessageTemplate("network.modification.tabularCreation") - .withUntypedValue("creationType", modificationInfos.formatEquipmentTypeName()) + .withUntypedValue("creationType", formatEquipmentTypeName()) .add(); } @@ -52,7 +56,7 @@ public String getName() { @Override public String defaultMessage() { - return modificationInfos.formatEquipmentTypeName() + " have been created"; + return formatEquipmentTypeName() + " have been created"; } @Override @@ -61,8 +65,8 @@ public String baseTemplateMessage() { } @Override - public void specificCheck(EquipmentModificationInfos equipmentModificationInfos, Network network, ReportNode subReportNode) { - if (equipmentModificationInfos instanceof ShuntCompensatorCreationInfos shuntCompensatorCreationInfos && shuntCompensatorCreationInfos.getMaxSusceptance() != null) { + public void specificCheck(AbstractEquipmentBase equipmentModificationInfos, Network network, ReportNode subReportNode) { + if (equipmentModificationInfos instanceof ShuntCompensatorCreation shuntCompensatorCreationInfos && shuntCompensatorCreationInfos.getMaxSusceptance() != null) { if (shuntCompensatorCreationInfos.getShuntCompensatorType() != null && shuntCompensatorCreationInfos.getMaxQAtNominalV() != null) { subReportNode.newReportNode() .withMessageTemplate("network.modification.tabular.creation.shuntCompensator.maxSusceptanceIgnored.1") diff --git a/src/main/java/org/gridsuite/modification/modifications/tabular/TabularModification.java b/src/main/java/org/gridsuite/modification/modifications/tabular/TabularModification.java index bc72f6c6..6315e5c1 100644 --- a/src/main/java/org/gridsuite/modification/modifications/tabular/TabularModification.java +++ b/src/main/java/org/gridsuite/modification/modifications/tabular/TabularModification.java @@ -11,13 +11,16 @@ import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.ShuntCompensatorModelType; import lombok.AccessLevel; +import lombok.Builder; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import org.gridsuite.modification.ModificationType; -import org.gridsuite.modification.dto.EquipmentModificationInfos; -import org.gridsuite.modification.dto.ShuntCompensatorModificationInfos; -import org.gridsuite.modification.dto.tabular.TabularModificationInfos; import org.gridsuite.modification.error.NetworkModificationException; +import org.gridsuite.modification.modifications.AbstractEquipmentBase; +import org.gridsuite.modification.modifications.ShuntCompensatorModification; + +import java.util.List; + import static org.gridsuite.modification.error.NetworkModificationExceptionType.TABULAR_MODIFICATION_ERROR; /** @@ -27,13 +30,14 @@ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class TabularModification extends AbstractTabularModification { - public TabularModification(TabularModificationInfos modificationInfos) { - super(modificationInfos); + @Builder + public TabularModification(ModificationType modificationType, List modifications) { + super(modificationType, modifications); } @Override public void check(Network network) throws NetworkModificationException { - if (modificationInfos == null) { + if (modifications == null) { throw new NetworkModificationException(TABULAR_MODIFICATION_ERROR, "No tabular modification to apply !!"); } } @@ -42,7 +46,7 @@ public void check(Network network) throws NetworkModificationException { public ReportNode createSubReportNode(ReportNode reportNode) { return reportNode.newReportNode() .withMessageTemplate("network.modification.tabularModification") - .withUntypedValue("modificationType", modificationInfos.formatEquipmentTypeName()) + .withUntypedValue("modificationType", formatEquipmentTypeName()) .add(); } @@ -53,7 +57,7 @@ public String getName() { @Override public String defaultMessage() { - return modificationInfos.formatEquipmentTypeName() + " have been modified"; + return formatEquipmentTypeName() + " have been modified"; } @Override @@ -62,8 +66,8 @@ public String baseTemplateMessage() { } @Override - public void specificCheck(EquipmentModificationInfos equipmentModificationInfos, Network network, ReportNode subReportNode) { - if (equipmentModificationInfos instanceof ShuntCompensatorModificationInfos shuntCompensatorModificationInfos) { + public void specificCheck(AbstractEquipmentBase equipmentModificationInfos, Network network, ReportNode subReportNode) { + if (equipmentModificationInfos instanceof ShuntCompensatorModification shuntCompensatorModificationInfos) { var shuntCompensator = network.getShuntCompensator(shuntCompensatorModificationInfos.getEquipmentId()); if (shuntCompensator.getModelType() == ShuntCompensatorModelType.NON_LINEAR) { subReportNode.newReportNode() diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularShuntCompensatorModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularShuntCompensatorModificationsTest.java index 95b4f158..902a5bbd 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularShuntCompensatorModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularShuntCompensatorModificationsTest.java @@ -16,6 +16,7 @@ import org.gridsuite.modification.ModificationType; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularModificationInfos; +import org.gridsuite.modification.modifications.AbstractEquipmentBase; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; import org.gridsuite.modification.modifications.tabular.TabularModification; import org.gridsuite.modification.report.NetworkModificationReportResourceBundle; @@ -134,13 +135,13 @@ void testCheckModificationConflict() { .withMessageTemplate("test") .build(); - tabularModification.specificCheck(shuntModification, network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); shuntModification.setShuntCompensatorType(AttributeModification.toAttributeModification(ShuntCompensatorType.CAPACITOR, OperationType.SET)); - tabularModification.specificCheck(shuntModification, network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); shuntModification.setMaxQAtNominalV(null); - tabularModification.specificCheck(shuntModification, network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); assertEquals(TypedValue.WARN_SEVERITY, reportNode.getChildren().get(0).getValues().get(ReportConstants.SEVERITY_KEY)); } @@ -171,7 +172,7 @@ void testCheckModificationNonLinear() { .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test") .build(); - tabularModification.specificCheck(shuntModification, network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); assertEquals(TypedValue.ERROR_SEVERITY, reportNode.getChildren().get(0).getValues().get(ReportConstants.SEVERITY_KEY)); @@ -203,7 +204,7 @@ void testCheckModificationOK() { .withMessageTemplate("test") .build(); - tabularModification.specificCheck(shuntModification, network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); assertEquals(0, reportNode.getChildren().size()); } From 251f265df4f0c6f570b1ce28a7f7144c39bbd2fa Mon Sep 17 00:00:00 2001 From: Joris Mancini Date: Mon, 7 Sep 2026 15:02:07 +0200 Subject: [PATCH 5/6] use context in composed modifications to remove rootNetworkTag from AbstractModification Signed-off-by: Joris Mancini --- pom.xml | 2 +- .../context/ModificationContext.java | 3 +- .../dto/CompositeModificationInfos.java | 8 +- .../dto/ModificationReferenceInfos.java | 5 +- .../dto/tabular/TabularCreationInfos.java | 6 +- .../dto/tabular/TabularModificationInfos.java | 6 +- .../modifications/AbstractModification.java | 16 +--- .../modifications/AbstractScaling.java | 2 +- .../BalancesAdjustmentModification.java | 2 +- .../modifications/ByFilterDeletion.java | 2 +- .../modifications/CompositeModification.java | 4 +- .../modifications/GenerationDispatch.java | 2 +- .../modifications/ModificationReference.java | 4 +- .../AbstractModificationByAssignment.java | 2 +- .../AbstractNetworkModificationTest.java | 9 ++- .../BalancesAdjustmentModificationTest.java | 8 +- .../CompositeModificationsTest.java | 15 ++-- .../modifications/GenerationDispatchTest.java | 28 +++---- .../modifications/GeneratorScalingTest.java | 10 +-- .../modifications/LoadScalingTest.java | 10 +-- .../ModificationReferenceTest.java | 5 +- .../AbstractModificationByAssignmentTest.java | 4 +- .../AbstractByFormulaModificationTest.java | 4 +- .../AbstractByFilterDeletionTest.java | 6 +- .../ShuntCompensatorCreationsTest.java | 13 ++-- .../TabularBatteryCreationsTest.java | 9 ++- .../TabularGeneratorCreationsTest.java | 9 ++- .../TabularLoadCreationsTest.java | 9 ++- .../LimitSetModificationsTest.java | 77 ++++++++++--------- .../TabularBatteryModificationsTest.java | 5 +- .../TabularGeneratorModificationsTest.java | 9 ++- .../TabularLineModificationsTest.java | 5 +- .../TabularLoadModificationsTest.java | 5 +- ...ularShuntCompensatorModificationsTest.java | 21 ++--- .../TabularSubstationModificationsTest.java | 5 +- ...oWindingsTransformerModificationsTest.java | 5 +- .../TabularVoltageLevelModificationsTest.java | 5 +- 37 files changed, 173 insertions(+), 167 deletions(-) diff --git a/pom.xml b/pom.xml index e2c74ed8..39743f0d 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,7 @@ 0.8.15 13.8.0 2.34.0 - 1.29.0 + 1.32.0-SNAPSHOT 2.2.36 gridsuite org.gridsuite:network-modification diff --git a/src/main/java/org/gridsuite/modification/context/ModificationContext.java b/src/main/java/org/gridsuite/modification/context/ModificationContext.java index a6f6f0b7..972953de 100644 --- a/src/main/java/org/gridsuite/modification/context/ModificationContext.java +++ b/src/main/java/org/gridsuite/modification/context/ModificationContext.java @@ -22,7 +22,8 @@ */ @Builder public record ModificationContext(FilterLoader filterLoader, - LoadFlowParametersLoader loadFlowParametersLoader) { + LoadFlowParametersLoader loadFlowParametersLoader, + String rootNetworkTag) { private static final FilterLoader NO_FILTER_LOADER = filterUuids -> { throw missingLoader("filter loader"); diff --git a/src/main/java/org/gridsuite/modification/dto/CompositeModificationInfos.java b/src/main/java/org/gridsuite/modification/dto/CompositeModificationInfos.java index 1e1ea669..015ff360 100644 --- a/src/main/java/org/gridsuite/modification/dto/CompositeModificationInfos.java +++ b/src/main/java/org/gridsuite/modification/dto/CompositeModificationInfos.java @@ -11,6 +11,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.experimental.SuperBuilder; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.modifications.AbstractModification; import org.gridsuite.modification.modifications.CompositeModification; @@ -46,14 +47,13 @@ public class CompositeModificationInfos extends ModificationInfos { private Integer maxDepth; @Override - public AbstractModification toModification() { + public AbstractModification toModification(ModificationContext context) { return CompositeModification.builder() .name(name) .maxDepth(maxDepth) .modificationsInfos(modificationsInfos.stream() - .filter(modificationInfos -> Boolean.TRUE.equals(modificationInfos.getActivated()) - && Boolean.FALSE.equals(modificationInfos.getStashed())) - .map(ModificationInfos::toModification) + .filter(modificationInfos -> modificationInfos.isActivatedOn(context.rootNetworkTag())) + .map(modificationInfos -> modificationInfos.toModification(context)) .toList()) .build(); } diff --git a/src/main/java/org/gridsuite/modification/dto/ModificationReferenceInfos.java b/src/main/java/org/gridsuite/modification/dto/ModificationReferenceInfos.java index aac898a6..a11df284 100644 --- a/src/main/java/org/gridsuite/modification/dto/ModificationReferenceInfos.java +++ b/src/main/java/org/gridsuite/modification/dto/ModificationReferenceInfos.java @@ -14,6 +14,7 @@ import lombok.Setter; import lombok.ToString; import lombok.experimental.SuperBuilder; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.modifications.AbstractModification; import org.gridsuite.modification.modifications.ModificationReference; @@ -51,10 +52,10 @@ public enum Type { private ModificationInfos referenceInfos; @Override - public AbstractModification toModification() { + public AbstractModification toModification(ModificationContext context) { return ModificationReference.builder() .referenceType(getReferenceType()) - .referenceModification(getReferenceInfos().toModification()) + .referenceModification(getReferenceInfos().toModification(context)) .build(); } diff --git a/src/main/java/org/gridsuite/modification/dto/tabular/TabularCreationInfos.java b/src/main/java/org/gridsuite/modification/dto/tabular/TabularCreationInfos.java index 28949585..3429b092 100644 --- a/src/main/java/org/gridsuite/modification/dto/tabular/TabularCreationInfos.java +++ b/src/main/java/org/gridsuite/modification/dto/tabular/TabularCreationInfos.java @@ -12,7 +12,7 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; -import org.gridsuite.modification.dto.ModificationInfos; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.modifications.AbstractEquipmentBase; import org.gridsuite.modification.modifications.AbstractModification; import org.gridsuite.modification.modifications.tabular.TabularCreation; @@ -32,11 +32,11 @@ public class TabularCreationInfos extends TabularBaseInfos { @Override - public AbstractModification toModification() { + public AbstractModification toModification(ModificationContext context) { return TabularCreation.builder() .modificationType(getModificationType()) .modifications(getModifications().stream() - .map(ModificationInfos::toModification) + .map(modificationInfos -> modificationInfos.toModification(context)) .map(m -> (AbstractEquipmentBase) m) .toList()) .build(); diff --git a/src/main/java/org/gridsuite/modification/dto/tabular/TabularModificationInfos.java b/src/main/java/org/gridsuite/modification/dto/tabular/TabularModificationInfos.java index 159baac3..db8da475 100644 --- a/src/main/java/org/gridsuite/modification/dto/tabular/TabularModificationInfos.java +++ b/src/main/java/org/gridsuite/modification/dto/tabular/TabularModificationInfos.java @@ -10,7 +10,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.experimental.SuperBuilder; -import org.gridsuite.modification.dto.ModificationInfos; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.modifications.AbstractEquipmentBase; import org.gridsuite.modification.modifications.AbstractModification; import org.gridsuite.modification.modifications.tabular.TabularModification; @@ -28,11 +28,11 @@ @Schema(description = "Tabular modification") public class TabularModificationInfos extends TabularBaseInfos { @Override - public AbstractModification toModification() { + public AbstractModification toModification(ModificationContext context) { return TabularModification.builder() .modificationType(getModificationType()) .modifications(getModifications().stream() - .map(ModificationInfos::toModification) + .map(modificationInfos -> modificationInfos.toModification(context)) .map(m -> (AbstractEquipmentBase) m) .toList()) .build(); diff --git a/src/main/java/org/gridsuite/modification/modifications/AbstractModification.java b/src/main/java/org/gridsuite/modification/modifications/AbstractModification.java index c7c744c4..39401819 100644 --- a/src/main/java/org/gridsuite/modification/modifications/AbstractModification.java +++ b/src/main/java/org/gridsuite/modification/modifications/AbstractModification.java @@ -6,7 +6,6 @@ */ package org.gridsuite.modification.modifications; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; @@ -17,7 +16,6 @@ import com.powsybl.iidm.network.Network; import lombok.AccessLevel; import lombok.EqualsAndHashCode; -import lombok.Getter; import lombok.NoArgsConstructor; import org.gridsuite.modification.IFilterService; import org.gridsuite.modification.ILoadFlowService; @@ -35,7 +33,7 @@ * the {@code @JsonSubTypes} registry of this class. * *

The injected application context ({@code filterService}, {@code loadFlowService}) is not serialized. - * After deserialization, {@link #initApplicationContext(IFilterService, ILoadFlowService, String)} must be called + * After deserialization, {@link #initApplicationContext(IFilterService, ILoadFlowService)} must be called * again with valid services before the modification can be applied. * * @author Slimane Amar @@ -98,11 +96,6 @@ @NoArgsConstructor(access = AccessLevel.PROTECTED) public abstract class AbstractModification extends AbstractNetworkModification { - @JsonIgnore - @EqualsAndHashCode.Exclude - @Getter - private String rootNetworkTag; - @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { apply(network, reportNode); @@ -119,12 +112,7 @@ public void check(Network network) throws NetworkModificationException { *

None of it is serialized with the modification: after deserialization, this method must be called again * before the modification can be applied. */ - public final void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService, String rootNetworkTag) { - this.rootNetworkTag = rootNetworkTag; - initServices(filterService, loadFlowService); - } - - protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { + public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { // To add some specific information } diff --git a/src/main/java/org/gridsuite/modification/modifications/AbstractScaling.java b/src/main/java/org/gridsuite/modification/modifications/AbstractScaling.java index 5d26ee6e..8008878e 100644 --- a/src/main/java/org/gridsuite/modification/modifications/AbstractScaling.java +++ b/src/main/java/org/gridsuite/modification/modifications/AbstractScaling.java @@ -53,7 +53,7 @@ protected AbstractScaling(List variations, VariationType } @Override - protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { + public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { this.filterService = filterService; } diff --git a/src/main/java/org/gridsuite/modification/modifications/BalancesAdjustmentModification.java b/src/main/java/org/gridsuite/modification/modifications/BalancesAdjustmentModification.java index f03fbc05..8b9d50dc 100644 --- a/src/main/java/org/gridsuite/modification/modifications/BalancesAdjustmentModification.java +++ b/src/main/java/org/gridsuite/modification/modifications/BalancesAdjustmentModification.java @@ -82,7 +82,7 @@ public BalancesAdjustmentModification(List areas, } @Override - protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { + public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { this.loadFlowService = loadFlowService; } diff --git a/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java b/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java index 5193ebc0..d5e960c9 100644 --- a/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java +++ b/src/main/java/org/gridsuite/modification/modifications/ByFilterDeletion.java @@ -69,7 +69,7 @@ public ByFilterDeletion(IdentifiableType equipmentType, List filter } @Override - protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { + public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { this.filterService = filterService; } diff --git a/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java b/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java index ec9c98f6..a58ec0ce 100644 --- a/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java +++ b/src/main/java/org/gridsuite/modification/modifications/CompositeModification.java @@ -43,9 +43,9 @@ public CompositeModification(String name, Integer maxDepth, List - modif.initServices(filterService, loadFlowService)); + modif.initApplicationContext(filterService, loadFlowService)); } @Override diff --git a/src/main/java/org/gridsuite/modification/modifications/GenerationDispatch.java b/src/main/java/org/gridsuite/modification/modifications/GenerationDispatch.java index 59748df1..92da3843 100644 --- a/src/main/java/org/gridsuite/modification/modifications/GenerationDispatch.java +++ b/src/main/java/org/gridsuite/modification/modifications/GenerationDispatch.java @@ -366,7 +366,7 @@ private static final class GeneratorsFrequencyReserve { } @Override - protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { + public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { this.filterService = filterService; } diff --git a/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java b/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java index f4b1417b..956e823e 100644 --- a/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java +++ b/src/main/java/org/gridsuite/modification/modifications/ModificationReference.java @@ -38,8 +38,8 @@ public ModificationReference(ModificationReferenceInfos.Type referenceType, } @Override - protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { - referenceModification.initServices(filterService, loadFlowService); + public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { + referenceModification.initApplicationContext(filterService, loadFlowService); } @Override diff --git a/src/main/java/org/gridsuite/modification/modifications/byfilter/AbstractModificationByAssignment.java b/src/main/java/org/gridsuite/modification/modifications/byfilter/AbstractModificationByAssignment.java index aeb233ec..9a3ea5a6 100644 --- a/src/main/java/org/gridsuite/modification/modifications/byfilter/AbstractModificationByAssignment.java +++ b/src/main/java/org/gridsuite/modification/modifications/byfilter/AbstractModificationByAssignment.java @@ -154,7 +154,7 @@ protected String applyValue(Identifiable equipment, AbstractAssignmentInfos a } @Override - protected void initServices(IFilterService filterService, ILoadFlowService loadFlowService) { + public void initApplicationContext(IFilterService filterService, ILoadFlowService loadFlowService) { this.filterService = filterService; } diff --git a/src/test/java/org/gridsuite/modification/modifications/AbstractNetworkModificationTest.java b/src/test/java/org/gridsuite/modification/modifications/AbstractNetworkModificationTest.java index 77ba33df..7a43bf87 100644 --- a/src/test/java/org/gridsuite/modification/modifications/AbstractNetworkModificationTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/AbstractNetworkModificationTest.java @@ -14,6 +14,7 @@ import com.powsybl.iidm.network.Network; import org.gridsuite.modification.IFilterService; import org.gridsuite.modification.ILoadFlowService; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.ModificationInfos; import org.gridsuite.modification.report.NetworkModificationReportResourceBundle; import org.junit.jupiter.api.BeforeEach; @@ -56,11 +57,11 @@ public void setUp() { @Test public void testApply() throws Exception { ModificationInfos modificationInfos = buildModification(); - ReportNode report = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode report = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME, PowsyblCoreReportResourceBundle.BASE_NAME) .withMessageTemplate("test") .build()); - AbstractModification modification = modificationInfos.toModification(); + AbstractModification modification = modificationInfos.toModification(ModificationContext.empty()); modification.check(network); initApplicationContext(modification); modification.apply(network, report); @@ -83,8 +84,8 @@ public void testCheck() { public void testRoundTripSerializationDeserialization() throws JsonProcessingException { ILoadFlowService loadFlowServiceMock = mock(ILoadFlowService.class); IFilterService filterServiceMock = mock(IFilterService.class); - AbstractModification expectedModification = buildModification().toModification(); - expectedModification.initApplicationContext(filterServiceMock, loadFlowServiceMock, null); + AbstractModification expectedModification = buildModification().toModification(ModificationContext.empty()); + expectedModification.initApplicationContext(filterServiceMock, loadFlowServiceMock); String serializedModification = mapper.writeValueAsString(expectedModification); AbstractModification deserializedModification = mapper.readValue(serializedModification, AbstractModification.class); diff --git a/src/test/java/org/gridsuite/modification/modifications/BalancesAdjustmentModificationTest.java b/src/test/java/org/gridsuite/modification/modifications/BalancesAdjustmentModificationTest.java index 466c3145..41d69a17 100644 --- a/src/test/java/org/gridsuite/modification/modifications/BalancesAdjustmentModificationTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/BalancesAdjustmentModificationTest.java @@ -156,7 +156,7 @@ void testApplyWithLoadFlow() { ))) .build()); BalancesAdjustmentModification modification = (BalancesAdjustmentModification) infos.toModification(); - modification.initApplicationContext(null, loadFlowService, null); + modification.initApplicationContext(null, loadFlowService); modification.apply(getNetwork(), new DefaultNamingStrategy(), ReportNode.NO_OP); assertEquals(-58d, getNetwork().getGenerator("GH1").getTerminal().getP(), PRECISION); @@ -193,7 +193,7 @@ void testLoadFlowParametersNotFound() { .thenReturn(null); BalancesAdjustmentModification modification = (BalancesAdjustmentModification) infos.toModification(); - modification.initApplicationContext(null, loadFlowService, null); + modification.initApplicationContext(null, loadFlowService); Network network = getNetwork(); ReportNode reportNode = ReportNode.newRootReportNode() @@ -236,7 +236,7 @@ void testLoadFlowProviderNotSpecified() { .build()); BalancesAdjustmentModification modification = (BalancesAdjustmentModification) infos.toModification(); - modification.initApplicationContext(null, loadFlowService, null); + modification.initApplicationContext(null, loadFlowService); Network network = getNetwork(); ReportNode reportNode = ReportNode.newRootReportNode() @@ -272,7 +272,7 @@ void testLoadFlowParametersIdNull() { .build(); BalancesAdjustmentModification modification = (BalancesAdjustmentModification) infos.toModification(); - modification.initApplicationContext(null, loadFlowService, null); + modification.initApplicationContext(null, loadFlowService); Network network = getNetwork(); ReportNode reportNode = ReportNode.newRootReportNode() diff --git a/src/test/java/org/gridsuite/modification/modifications/CompositeModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/CompositeModificationsTest.java index fb0f7750..6f0c3da7 100644 --- a/src/test/java/org/gridsuite/modification/modifications/CompositeModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/CompositeModificationsTest.java @@ -12,6 +12,7 @@ import com.powsybl.iidm.network.LoadType; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.report.NetworkModificationReportResourceBundle; import org.gridsuite.modification.utils.ModificationCreation; @@ -41,11 +42,11 @@ void checkCompositeExecutionDepth() { CompositeModificationInfos compositeModificationInfos = (CompositeModificationInfos) buildModification(); // checks that the sub sub sub netmod is executed at the right depth - ReportNode report = compositeModificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode report = compositeModificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test") .build()); - CompositeModification netmod = (CompositeModification) compositeModificationInfos.toModification(); + CompositeModification netmod = (CompositeModification) compositeModificationInfos.toModification(ModificationContext.empty()); assertDoesNotThrow(() -> netmod.apply(network, report)); assertLogMessageAtDepth( "Generator with id=idGenerator modified :", @@ -66,16 +67,16 @@ void checkCompositeExecutionErrorHandling() { Network network = getNetwork(); CompositeModificationInfos compositeModificationInfos = (CompositeModificationInfos) buildModification(); - ReportNode report = compositeModificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode report = compositeModificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test") .build()); // regular throwing exception netmod - GeneratorCreation throwingExceptionNetMod = (GeneratorCreation) buildThrowingModification().toModification(); + GeneratorCreation throwingExceptionNetMod = (GeneratorCreation) buildThrowingModification().toModification(ModificationContext.empty()); assertThrows(PowsyblException.class, () -> throwingExceptionNetMod.apply(network)); // but doesn't throw once inside a composite modification compositeModificationInfos.setModificationsInfos(List.of(buildThrowingModification())); - CompositeModification netmodContainingError = (CompositeModification) compositeModificationInfos.toModification(); + CompositeModification netmodContainingError = (CompositeModification) compositeModificationInfos.toModification(ModificationContext.empty()); assertDoesNotThrow(() -> netmodContainingError.apply(network, report)); // but the thrown message is inside the report : assertLogMessageWithoutRank( @@ -111,12 +112,12 @@ void checkCompositeFiltersDeactivatedAndStashedModifications() { .stashed(false) .build(); - ReportNode report = composite.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode report = composite.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test") .build()); - CompositeModification netmod = (CompositeModification) composite.toModification(); + CompositeModification netmod = (CompositeModification) composite.toModification(ModificationContext.empty()); assertDoesNotThrow(() -> netmod.apply(network, report)); // Only the baseline rename (activated=true, stashed=false) should have been applied; diff --git a/src/test/java/org/gridsuite/modification/modifications/GenerationDispatchTest.java b/src/test/java/org/gridsuite/modification/modifications/GenerationDispatchTest.java index 7282eb31..3ceefb04 100644 --- a/src/test/java/org/gridsuite/modification/modifications/GenerationDispatchTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/GenerationDispatchTest.java @@ -101,7 +101,7 @@ private void assertLogReportsForDefaultNetwork(double batteryBalanceOnSc2, Repor @Test public void testApply() throws Exception { GenerationDispatch modif = (GenerationDispatch) buildModification().toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); modif.apply(getNetwork()); assertAfterNetworkModificationApplication(); } @@ -118,7 +118,7 @@ void testGenerationDispatch() throws Exception { .withMessageTemplate("test") .build()); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); modif.apply(getNetwork(), report); assertNetworkAfterCreationWithStandardLossCoefficient(); @@ -141,7 +141,7 @@ void testGenerationDispatchWithBattery() throws Exception { .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); modif.apply(getNetwork(), report); assertLogReportsForDefaultNetwork(batteryTotalTargetP, report); } @@ -164,7 +164,7 @@ void testGenerationDispatchWithBatteryConnection() throws Exception { .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); modif.apply(getNetwork(), report); assertLogReportsForDefaultNetwork(batteryTotalTargetP, report); } @@ -179,7 +179,7 @@ void testGenerationDispatchWithMultipleEnergySource() throws Exception { .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); modif.apply(getNetwork(), report); assertLogMessageWithoutRank("The total demand is : 768.0 MW", "network.modification.TotalDemand", report); @@ -204,7 +204,7 @@ void testGenerationDispatchWithHigherLossCoefficient() throws Exception { .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); modif.apply(getNetwork(), report); assertEquals(100., getNetwork().getGenerator(GH1_ID).getTargetP(), 0.001); @@ -247,7 +247,7 @@ void testGenerationDispatchWithInternalHvdc() throws Exception { .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); modif.apply(getNetwork(), report); assertEquals(100., getNetwork().getGenerator(GH1_ID).getTargetP(), 0.001); @@ -297,7 +297,7 @@ void testGenerationDispatchWithMaxPReduction() throws Exception { when(filterService.getFilters(List.of(FILTER_ID_1, FILTER_ID_2, FILTER_ID_3))).thenReturn(filters); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); ReportNode report = modification.toModification().createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); @@ -368,7 +368,7 @@ void testGenerationDispatchGeneratorsWithFixedSupply() throws Exception { when(filterService.getFilters(List.of(FILTER_ID_1, FILTER_ID_2, FILTER_ID_3, FILTER_ID_4))).thenReturn(filters); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); ReportNode report = modification.toModification().createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); @@ -469,7 +469,7 @@ void testGenerationDispatchWithFrequencyReserve() throws Exception { when(filterService.getFilters(List.of(FILTER_ID_1, FILTER_ID_2, FILTER_ID_3, FILTER_ID_4, FILTER_ID_5, FILTER_ID_6))).thenReturn(filters); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); ReportNode report = modification.toModification().createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); @@ -520,7 +520,7 @@ void testGenerationDispatchWithSubstationsHierarchy() throws Exception { // network setNetwork(Network.read("ieee118cdf_testDemGroupe.xiidm", getClass().getResourceAsStream("/ieee118cdf_testDemGroupe.xiidm"))); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); modif.apply(getNetwork()); // generators modified @@ -618,7 +618,7 @@ void testGenerationDispatchWithSubstationsHierarchyAndFixedSupply() { when(filterService.getFilters(List.of(FILTER_ID_1))).thenReturn(filters); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); modif.apply(getNetwork()); // Check expected target active power values @@ -697,7 +697,7 @@ void testGenerationDispatchWithMaxValueLessThanMinP() throws Exception { when(filterService.getFilters(List.of(FILTER_ID_1, FILTER_ID_2, FILTER_ID_3, FILTER_ID_4, FILTER_ID_5, FILTER_ID_6))).thenReturn(filters); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); ReportNode report = modification.toModification().createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); @@ -801,7 +801,7 @@ void testGenerationDispatchWithMissingFilters() { setNetwork(Network.read("testGenerationDispatchReduceMaxP.xiidm", getClass().getResourceAsStream("/testGenerationDispatchReduceMaxP.xiidm"))); GenerationDispatch modif = (GenerationDispatch) modification.toModification(); - modif.initApplicationContext(filterService, null, null); + modif.initApplicationContext(filterService, null); ReportNode report = modification.toModification().createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); diff --git a/src/test/java/org/gridsuite/modification/modifications/GeneratorScalingTest.java b/src/test/java/org/gridsuite/modification/modifications/GeneratorScalingTest.java index 74bf23e0..731b4ac9 100644 --- a/src/test/java/org/gridsuite/modification/modifications/GeneratorScalingTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/GeneratorScalingTest.java @@ -108,7 +108,7 @@ public void testApply() throws Exception { GeneratorScalingInfos modificationInfo = (GeneratorScalingInfos) buildModification(); when(filterService.getUuidFilterEquipmentsMap(any(), any())).thenReturn(getTestFilters()); GeneratorScaling generatorScaling = (GeneratorScaling) modificationInfo.toModification(); - generatorScaling.initApplicationContext(filterService, null, null); + generatorScaling.initApplicationContext(filterService, null); generatorScaling.apply(getNetwork()); assertAfterNetworkModificationApplication(); } @@ -140,7 +140,7 @@ void testVentilationModeWithoutDistributionKey() throws Exception { .build(); GeneratorScaling generatorScaling = (GeneratorScaling) modificationToCreate.toModification(); - generatorScaling.initApplicationContext(filterService, null, null); + generatorScaling.initApplicationContext(filterService, null); generatorScaling.apply(getNetwork()); assertEquals(200, getNetwork().getGenerator(GENERATOR_ID_2).getTargetP(), 0.01D); @@ -168,7 +168,7 @@ void testFilterWithWrongIds() throws Exception { .build(); GeneratorScaling generatorScaling = (GeneratorScaling) generatorScalingInfo.toModification(); - generatorScaling.initApplicationContext(filterService, null, null); + generatorScaling.initApplicationContext(filterService, null); ReportNode report = generatorScalingInfo.toModification().createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); @@ -213,7 +213,7 @@ void testScalingCreationWithWarning() throws Exception { .build(); GeneratorScaling generatorScaling = (GeneratorScaling) generatorScalingInfo.toModification(); - generatorScaling.initApplicationContext(filterService, null, null); + generatorScaling.initApplicationContext(filterService, null); generatorScaling.apply(getNetwork()); assertEquals(600, getNetwork().getGenerator(GENERATOR_ID_9).getTargetP(), 0.01D); @@ -358,7 +358,7 @@ private void testVariationWithSomeDisconnections(VariationMode variationMode, Li .build(); GeneratorScaling generatorScaling = (GeneratorScaling) generatorScalingInfo.toModification(); - generatorScaling.initApplicationContext(filterService, null, null); + generatorScaling.initApplicationContext(filterService, null); generatorScaling.apply(getNetwork()); // If we sum the targetP for all expected modified generators, we should have the requested variation value diff --git a/src/test/java/org/gridsuite/modification/modifications/LoadScalingTest.java b/src/test/java/org/gridsuite/modification/modifications/LoadScalingTest.java index 7c5155f8..f50be654 100644 --- a/src/test/java/org/gridsuite/modification/modifications/LoadScalingTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/LoadScalingTest.java @@ -109,7 +109,7 @@ public void testApply() throws Exception { LoadScalingInfos modificationInfo = (LoadScalingInfos) buildModification(); when(filterService.getUuidFilterEquipmentsMap(any(), any())).thenReturn(getTestFilters()); LoadScaling loadScaling = (LoadScaling) modificationInfo.toModification(); - loadScaling.initApplicationContext(filterService, null, null); + loadScaling.initApplicationContext(filterService, null); loadScaling.apply(getNetwork()); assertAfterNetworkModificationApplication(); } @@ -141,7 +141,7 @@ void testVentilationModeWithoutDistributionKey() throws Exception { .build(); LoadScaling loadScaling = (LoadScaling) modificationToCreate.toModification(); - loadScaling.initApplicationContext(filterService, null, null); + loadScaling.initApplicationContext(filterService, null); loadScaling.apply(getNetwork()); assertEquals(200, getNetwork().getLoad(LOAD_ID_2).getP0(), 0.01D); @@ -170,7 +170,7 @@ void testFilterWithWrongIds() throws Exception { .variations(List.of(variation)) .build(); LoadScaling loadScaling = (LoadScaling) loadScalingInfo.toModification(); - loadScaling.initApplicationContext(filterService, null, null); + loadScaling.initApplicationContext(filterService, null); ReportNode report = loadScalingInfo.toModification().createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); @@ -216,7 +216,7 @@ void testScalingCreationWithWarning() throws Exception { .build(); LoadScaling loadScaling = (LoadScaling) loadScalingInfo.toModification(); - loadScaling.initApplicationContext(filterService, null, null); + loadScaling.initApplicationContext(filterService, null); loadScaling.apply(getNetwork()); assertEquals(600, getNetwork().getLoad(LOAD_ID_9).getP0(), 0.01D); assertEquals(300, getNetwork().getLoad(LOAD_ID_10).getP0(), 0.01D); @@ -367,7 +367,7 @@ private void testVariationWithSomeDisconnections(VariationMode variationMode, Li .build(); LoadScaling loadScaling = (LoadScaling) loadScalingInfo.toModification(); - loadScaling.initApplicationContext(filterService, null, null); + loadScaling.initApplicationContext(filterService, null); loadScaling.apply(getNetwork()); // If we sum the P0 for all expected modified loads, we should have the requested variation value diff --git a/src/test/java/org/gridsuite/modification/modifications/ModificationReferenceTest.java b/src/test/java/org/gridsuite/modification/modifications/ModificationReferenceTest.java index 3d9134ae..ebef3599 100644 --- a/src/test/java/org/gridsuite/modification/modifications/ModificationReferenceTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/ModificationReferenceTest.java @@ -10,6 +10,7 @@ import com.powsybl.iidm.network.LoadType; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.CompositeModificationInfos; import org.gridsuite.modification.dto.ModificationInfos; import org.gridsuite.modification.dto.ModificationReferenceInfos; @@ -33,12 +34,12 @@ protected Network createNetwork(UUID networkUuid) { @Override public void checkModification() { - assertEquals(ModificationType.MODIFICATION_REFERENCE.name(), buildModification().toModification().getName()); + assertEquals(ModificationType.MODIFICATION_REFERENCE.name(), buildModification().toModification(ModificationContext.empty()).getName()); } @Override protected void initApplicationContext(AbstractModification modification) { - modification.initApplicationContext(null, null, null); + modification.initApplicationContext(null, null); } @Override diff --git a/src/test/java/org/gridsuite/modification/modifications/byfilter/assignment/AbstractModificationByAssignmentTest.java b/src/test/java/org/gridsuite/modification/modifications/byfilter/assignment/AbstractModificationByAssignmentTest.java index a18a4677..46500cee 100644 --- a/src/test/java/org/gridsuite/modification/modifications/byfilter/assignment/AbstractModificationByAssignmentTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/byfilter/assignment/AbstractModificationByAssignmentTest.java @@ -78,7 +78,7 @@ public void testApply() throws Exception { ModificationInfos modificationInfo = buildModification(); when(filterService.getUuidFilterEquipmentsMap(any(), any())).thenReturn(getTestFilters()); AbstractModification modification = modificationInfo.toModification(); - modification.initApplicationContext(filterService, null, null); + modification.initApplicationContext(filterService, null); modification.apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(); } @@ -104,7 +104,7 @@ protected void checkModification() { protected void apply(ModificationByAssignmentInfos modificationByAssignmentInfos) { AbstractModification modification = modificationByAssignmentInfos.toModification(); - modification.initApplicationContext(filterService, null, null); + modification.initApplicationContext(filterService, null); modification.apply(getNetwork()); } diff --git a/src/test/java/org/gridsuite/modification/modifications/byfilter/formula/AbstractByFormulaModificationTest.java b/src/test/java/org/gridsuite/modification/modifications/byfilter/formula/AbstractByFormulaModificationTest.java index ff743b55..1feb2da2 100644 --- a/src/test/java/org/gridsuite/modification/modifications/byfilter/formula/AbstractByFormulaModificationTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/byfilter/formula/AbstractByFormulaModificationTest.java @@ -75,7 +75,7 @@ public void testApply() throws Exception { ModificationInfos modificationInfo = buildModification(); when(filterService.getUuidFilterEquipmentsMap(any(), any())).thenReturn(getTestFilters()); AbstractModification modification = modificationInfo.toModification(); - modification.initApplicationContext(filterService, null, null); + modification.initApplicationContext(filterService, null); modification.apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(); } @@ -101,7 +101,7 @@ protected void checkModification() { protected void apply(ByFormulaModificationInfos modificationInfos) { AbstractModification modification = modificationInfos.toModification(); - modification.initApplicationContext(filterService, null, null); + modification.initApplicationContext(filterService, null); modification.apply(getNetwork()); } diff --git a/src/test/java/org/gridsuite/modification/modifications/byfilterdeletion/AbstractByFilterDeletionTest.java b/src/test/java/org/gridsuite/modification/modifications/byfilterdeletion/AbstractByFilterDeletionTest.java index d80d666a..d7ddd5bb 100644 --- a/src/test/java/org/gridsuite/modification/modifications/byfilterdeletion/AbstractByFilterDeletionTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/byfilterdeletion/AbstractByFilterDeletionTest.java @@ -64,7 +64,7 @@ public void testApply() throws Exception { ModificationInfos modificationInfo = buildModification(); when(filterService.getUuidFilterEquipmentsMap(any(), any())).thenReturn(getTestFilters()); AbstractModification modification = modificationInfo.toModification(); - modification.initApplicationContext(filterService, null, null); + modification.initApplicationContext(filterService, null); modification.apply(getNetwork()); assertAfterNetworkModificationApplication(); } @@ -90,7 +90,7 @@ protected void checkModification() { when(filterService.getUuidFilterEquipmentsMap(any(), any())).thenReturn(filterEquipments); ByFilterDeletion byFilterDeletion = (ByFilterDeletion) byFilterDeletionInfos.toModification(); - byFilterDeletion.initApplicationContext(filterService, null, null); + byFilterDeletion.initApplicationContext(filterService, null); ReportNode report = byFilterDeletionInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test") @@ -120,7 +120,7 @@ void testCreateAllFiltersWrong() throws Exception { when(filterService.getUuidFilterEquipmentsMap(any(), any())).thenReturn(filters); ByFilterDeletion byFilterDeletion = (ByFilterDeletion) byFilterDeletionInfos.toModification(); - byFilterDeletion.initApplicationContext(filterService, null, null); + byFilterDeletion.initApplicationContext(filterService, null); ReportNode report = byFilterDeletionInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test") diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularcreations/ShuntCompensatorCreationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularcreations/ShuntCompensatorCreationsTest.java index ce16bb8a..46f45a19 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularcreations/ShuntCompensatorCreationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularcreations/ShuntCompensatorCreationsTest.java @@ -11,6 +11,7 @@ import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularCreationInfos; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; @@ -100,10 +101,10 @@ void testAllModificationsHaveSucceeded() { .modifications(creations) .date(Instant.now()) .build(); - ReportNode reportNode = creationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = creationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - creationInfos.toModification().apply(getNetwork(), reportNode); + creationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular creation: 1 shunt compensator have been created", "network.modification.tabular.creation", reportNode); assertLogMessage("Creation of id1", "network.modification.tabular.creation.equipmentId", reportNode); } @@ -122,10 +123,10 @@ void testAllModificationsHaveFailed() { .modificationType(ModificationType.SHUNT_COMPENSATOR_CREATION) .modifications(creations) .build(); - ReportNode reportNode = creationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = creationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - creationInfos.toModification().apply(getNetwork(), reportNode); + creationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular creation: No shunt compensator have been created", "network.modification.tabular.creation.error", reportNode); assertLogMessage("Creation errors", "network.modification.tabular.creation.error.equipmentError", reportNode); } @@ -187,10 +188,10 @@ void testCheckCreationConflict() { .modifications(List.of(shuntCreation, shuntCreation2, shuntCreation3)) .build(); - ReportNode reportNode = tabularCreationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = tabularCreationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - tabularCreationInfos.toModification().apply(getNetwork(), reportNode); + tabularCreationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular creation: Input for maximum susceptance has been ignored since it is not possible to simultaneously set type, maximum reactive power and maximum susceptance for " + "shunt compensator with id id1", diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularBatteryCreationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularBatteryCreationsTest.java index a01c628d..759b5e5c 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularBatteryCreationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularBatteryCreationsTest.java @@ -13,6 +13,7 @@ import com.powsybl.iidm.network.ReactiveLimitsKind; import com.powsybl.iidm.network.extensions.ConnectablePosition; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.BatteryCreationInfos; import org.gridsuite.modification.dto.ModificationInfos; import org.gridsuite.modification.dto.ReactiveCapabilityCurvePointsInfos; @@ -153,10 +154,10 @@ void testAllModificationsHaveSucceeded() { .modifications(creations) .date(Instant.now()) .build(); - ReportNode reportNode = creationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = creationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - creationInfos.toModification().apply(getNetwork(), reportNode); + creationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular creation: 1 battery have been created", "network.modification.tabular.creation", reportNode); assertLogMessage("Creation of id1", "network.modification.tabular.creation.equipmentId", reportNode); } @@ -224,10 +225,10 @@ void testAllModificationsHaveFailed() { .modifications(creations) .date(Instant.now()) .build(); - ReportNode reportNode = creationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = creationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - creationInfos.toModification().apply(getNetwork(), reportNode); + creationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular creation: No batteries have been created", "network.modification.tabular.creation.error", reportNode); assertLogMessage("Creation errors", "network.modification.tabular.creation.error.equipmentError", reportNode); } diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularGeneratorCreationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularGeneratorCreationsTest.java index e29936db..0fba444c 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularGeneratorCreationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularGeneratorCreationsTest.java @@ -11,6 +11,7 @@ import com.powsybl.iidm.network.*; import com.powsybl.iidm.network.extensions.ConnectablePosition; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.GeneratorCreationInfos; import org.gridsuite.modification.dto.ModificationInfos; import org.gridsuite.modification.dto.ReactiveCapabilityCurvePointsInfos; @@ -173,10 +174,10 @@ void testAllModificationsHaveSucceeded() { .modifications(creations) .date(Instant.now()) .build(); - ReportNode reportNode = creationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = creationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - creationInfos.toModification().apply(getNetwork(), reportNode); + creationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular creation: 2 generators have been created", "network.modification.tabular.creation", reportNode); assertLogMessage("Creation of id1", "network.modification.tabular.creation.equipmentId", reportNode); assertLogNthMessage("Creation of id2", "network.modification.tabular.creation.equipmentId", reportNode, 2); @@ -254,10 +255,10 @@ void testAllModificationsHaveFailed() { .modifications(creations) .date(Instant.now()) .build(); - ReportNode reportNode = creationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = creationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - creationInfos.toModification().apply(getNetwork(), reportNode); + creationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular creation: No generators have been created", "network.modification.tabular.creation.error", reportNode); assertLogMessage("Creation errors", "network.modification.tabular.creation.error.equipmentError", reportNode); } diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularLoadCreationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularLoadCreationsTest.java index 933d12ab..0036c754 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularLoadCreationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularcreations/TabularLoadCreationsTest.java @@ -12,6 +12,7 @@ import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.LoadCreationInfos; import org.gridsuite.modification.dto.ModificationInfos; import org.gridsuite.modification.dto.tabular.TabularCreationInfos; @@ -112,10 +113,10 @@ void testAllModificationsHaveSucceeded() { .modifications(creations) .date(Instant.now()) .build(); - ReportNode reportNode = creationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = creationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - creationInfos.toModification().apply(getNetwork(), reportNode); + creationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular creation: 1 load have been created", "network.modification.tabular.creation", reportNode); assertLogMessage("Creation of id1", "network.modification.tabular.creation.equipmentId", reportNode); } @@ -147,10 +148,10 @@ void testAllModificationsHaveFailed() { .modifications(creations) .date(Instant.now()) .build(); - ReportNode reportNode = creationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = creationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - creationInfos.toModification().apply(getNetwork(), reportNode); + creationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular creation: No loads have been created", "network.modification.tabular.creation.error", reportNode); assertLogMessage("Creation errors", "network.modification.tabular.creation.error.equipmentError", reportNode); } diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/LimitSetModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/LimitSetModificationsTest.java index d03936b5..18d19d00 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/LimitSetModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/LimitSetModificationsTest.java @@ -11,6 +11,7 @@ import com.powsybl.iidm.network.Line; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.LimitSetsTabularModificationInfos; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; @@ -214,10 +215,10 @@ protected ModificationInfos buildModification() { @Override public void testApply() { ModificationInfos modificationInfos = buildModification(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(reportNode); } @@ -250,10 +251,10 @@ void testModifyTemporaryLimitNameOnly() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -292,10 +293,10 @@ void testModifyTemporaryLimitValueOnly() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -335,10 +336,10 @@ void testDeleteTemporaryLimit() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -376,10 +377,10 @@ void testModifyOrAddNonExistentLimit() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -428,10 +429,10 @@ void testModifyWithNoActualChanges() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -453,10 +454,10 @@ private enum MissingField { NAME, DURATION } void testTemporaryLimitMissingFieldIsSkipped(TemporaryLimitModificationType op, MissingField missing, String expectedKey, String expectedMessage) { ModificationInfos modificationInfos = buildMissingFieldModification(op, missing); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -547,10 +548,10 @@ void testTemporaryLimitNullModificationTypeIsSkipped(OperationalLimitsGroupModif )).build() )).build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -601,10 +602,10 @@ void testTemporaryLimitWrongModificationTypeIsForcedToAddOnAdd() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line2") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -651,10 +652,10 @@ void testTemporaryLimitWrongModificationTypeIsForcedToAddOnReplace() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -699,10 +700,10 @@ void testAddTemporaryLimitWithSameDurationIsSkipped() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessageWithoutRank("Duplicate duration for temporary limit different_name (duration: 32) to ADD: ignored", "network.modification.temporaryLimitsDuplicateDuration", reportNode); @@ -738,10 +739,10 @@ void testAddTemporaryLimitWithSameNameIsSkipped() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessageWithoutRank("Duplicate name for temporary limit name32 (duration: 99) to ADD: ignored", "network.modification.temporaryLimitsDuplicateName", reportNode); @@ -785,10 +786,10 @@ void testAddTemporaryLimitConflictingWithDeletedInSameBatchSucceeds() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -830,10 +831,10 @@ void testModifyTemporaryLimitWithDuplicateName() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -877,10 +878,10 @@ void testModifyOrAddTemporaryLimitWithDuplicateName() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -923,10 +924,10 @@ void testModifyOrAddOnExistingLimit() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -968,10 +969,10 @@ void testReplaceTemporaryLimitOnExistingReplacesNameAndValue() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -1011,10 +1012,10 @@ void testReplaceTemporaryLimitWithEmptyValueDoesNotPreservePrevious() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) @@ -1064,10 +1065,10 @@ void testAddTemporaryLimitDuplicateWithEarlierInBatchAddIsSkipped() { )) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); CurrentLimits limits = Objects.requireNonNull(getNetwork().getLine("line1") .getOperationalLimitsGroup1("DEFAULT").orElse(null)) diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularBatteryModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularBatteryModificationsTest.java index 85de8ece..a1cd62e6 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularBatteryModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularBatteryModificationsTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.report.ReportNode; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularModificationInfos; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; @@ -56,10 +57,10 @@ protected ModificationInfos buildModification() { @Override public void testApply() { ModificationInfos modificationInfos = buildModification(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(reportNode); } diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularGeneratorModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularGeneratorModificationsTest.java index f9eec89b..96289dc8 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularGeneratorModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularGeneratorModificationsTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.report.ReportNode; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularModificationInfos; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; @@ -57,10 +58,10 @@ protected ModificationInfos buildModification() { @Override public void testApply() { ModificationInfos modificationInfos = buildModification(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(reportNode); } @@ -92,10 +93,10 @@ void testAllModificationsHaveFailed() { .stashed(false) .date(Instant.now()) .build(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertLogMessage("Tabular modification: No generators have been modified", "network.modification.tabular.modification.error", reportNode); assertLogMessage("Modification errors", "network.modification.tabular.modification.error.equipmentError", reportNode); diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularLineModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularLineModificationsTest.java index e8a8d9d0..f144e21c 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularLineModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularLineModificationsTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.report.ReportNode; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularModificationInfos; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; @@ -57,10 +58,10 @@ protected ModificationInfos buildModification() { @Override public void testApply() { ModificationInfos modificationInfos = buildModification(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(reportNode); } diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularLoadModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularLoadModificationsTest.java index 3f03944a..8ad9af5d 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularLoadModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularLoadModificationsTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.report.ReportNode; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularModificationInfos; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; @@ -55,10 +56,10 @@ protected ModificationInfos buildModification() { @Override public void testApply() { ModificationInfos modificationInfos = buildModification(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(reportNode); } diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularShuntCompensatorModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularShuntCompensatorModificationsTest.java index 902a5bbd..2e408611 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularShuntCompensatorModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularShuntCompensatorModificationsTest.java @@ -14,6 +14,7 @@ import com.powsybl.iidm.network.ShuntCompensator; import com.powsybl.iidm.network.ShuntCompensatorModelType; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularModificationInfos; import org.gridsuite.modification.modifications.AbstractEquipmentBase; @@ -79,10 +80,10 @@ protected ModificationInfos buildModification() { @Override public void testApply() { ModificationInfos modificationInfos = buildModification(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(reportNode); } @@ -125,7 +126,7 @@ void testCheckModificationConflict() { .date(Instant.now()) .build(); - var tabularModification = (TabularModification) tabularModificationInfos.toModification(); + var tabularModification = (TabularModification) tabularModificationInfos.toModification(ModificationContext.empty()); when(network.getShuntCompensator("id")).thenReturn(shuntCompensator); when(shuntCompensator.getModelType()).thenReturn(ShuntCompensatorModelType.LINEAR); @@ -135,13 +136,13 @@ void testCheckModificationConflict() { .withMessageTemplate("test") .build(); - tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(ModificationContext.empty()), network, reportNode); shuntModification.setShuntCompensatorType(AttributeModification.toAttributeModification(ShuntCompensatorType.CAPACITOR, OperationType.SET)); - tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(ModificationContext.empty()), network, reportNode); shuntModification.setMaxQAtNominalV(null); - tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(ModificationContext.empty()), network, reportNode); assertEquals(TypedValue.WARN_SEVERITY, reportNode.getChildren().get(0).getValues().get(ReportConstants.SEVERITY_KEY)); } @@ -162,7 +163,7 @@ void testCheckModificationNonLinear() { .date(Instant.now()) .build(); - var tabularModification = (TabularModification) tabularModificationInfos.toModification(); + var tabularModification = (TabularModification) tabularModificationInfos.toModification(ModificationContext.empty()); when(network.getShuntCompensator("id")).thenReturn(shuntCompensator); when(shuntCompensator.getModelType()).thenReturn(ShuntCompensatorModelType.NON_LINEAR); @@ -172,7 +173,7 @@ void testCheckModificationNonLinear() { .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test") .build(); - tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(ModificationContext.empty()), network, reportNode); assertEquals(TypedValue.ERROR_SEVERITY, reportNode.getChildren().get(0).getValues().get(ReportConstants.SEVERITY_KEY)); @@ -194,7 +195,7 @@ void testCheckModificationOK() { .date(Instant.now()) .build(); - var tabularModification = (TabularModification) tabularModificationInfos.toModification(); + var tabularModification = (TabularModification) tabularModificationInfos.toModification(ModificationContext.empty()); when(network.getShuntCompensator("id")).thenReturn(shuntCompensator); when(shuntCompensator.getModelType()).thenReturn(ShuntCompensatorModelType.LINEAR); @@ -204,7 +205,7 @@ void testCheckModificationOK() { .withMessageTemplate("test") .build(); - tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(), network, reportNode); + tabularModification.specificCheck((AbstractEquipmentBase) shuntModification.toModification(ModificationContext.empty()), network, reportNode); assertEquals(0, reportNode.getChildren().size()); } diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularSubstationModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularSubstationModificationsTest.java index c0340317..a616a7b8 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularSubstationModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularSubstationModificationsTest.java @@ -11,6 +11,7 @@ import com.powsybl.iidm.network.Country; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularModificationInfos; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; @@ -60,10 +61,10 @@ protected ModificationInfos buildModification() { @Override public void testApply() { ModificationInfos modificationInfos = buildModification(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(reportNode); } diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularTwoWindingsTransformerModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularTwoWindingsTransformerModificationsTest.java index c439eecf..2bdf10f3 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularTwoWindingsTransformerModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularTwoWindingsTransformerModificationsTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.report.ReportNode; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularModificationInfos; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; @@ -62,10 +63,10 @@ protected TwoWindingsTransformerModificationInfos buildOneModification(String eq @Override public void testApply() { ModificationInfos modificationInfos = buildModification(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(reportNode); } diff --git a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularVoltageLevelModificationsTest.java b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularVoltageLevelModificationsTest.java index fba1a848..89c6947f 100644 --- a/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularVoltageLevelModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/modifications/tabularmodifications/TabularVoltageLevelModificationsTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.report.ReportNode; import com.powsybl.iidm.network.Network; import org.gridsuite.modification.ModificationType; +import org.gridsuite.modification.context.ModificationContext; import org.gridsuite.modification.dto.*; import org.gridsuite.modification.dto.tabular.TabularModificationInfos; import org.gridsuite.modification.modifications.AbstractNetworkModificationTest; @@ -56,10 +57,10 @@ protected ModificationInfos buildModification() { @Override public void testApply() { ModificationInfos modificationInfos = buildModification(); - ReportNode reportNode = modificationInfos.toModification().createSubReportNode(ReportNode.newRootReportNode() + ReportNode reportNode = modificationInfos.toModification(ModificationContext.empty()).createSubReportNode(ReportNode.newRootReportNode() .withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME) .withMessageTemplate("test").build()); - modificationInfos.toModification().apply(getNetwork(), reportNode); + modificationInfos.toModification(ModificationContext.empty()).apply(getNetwork(), reportNode); assertAfterNetworkModificationApplication(reportNode); } From 8e7526258c105170f9c85f3a0635c4c04e9f3bdd Mon Sep 17 00:00:00 2001 From: Joris Mancini Date: Mon, 7 Sep 2026 15:10:47 +0200 Subject: [PATCH 6/6] fix: base on released version Signed-off-by: Joris Mancini --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 39743f0d..4e225243 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,7 @@ 0.8.15 13.8.0 2.34.0 - 1.32.0-SNAPSHOT + 1.31.0 2.2.36 gridsuite org.gridsuite:network-modification