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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,22 @@
*/
package org.gridsuite.modification.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.powsybl.commons.report.ReportNode;
import com.powsybl.iidm.network.Country;
import com.powsybl.loadflow.LoadFlowParameters;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.gridsuite.filter.AbstractFilter;
import org.gridsuite.modification.dto.annotation.ModificationErrorTypeName;
import org.gridsuite.modification.modifications.AbstractModification;
import org.gridsuite.modification.modifications.BalancesAdjustmentModification;

import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.UUID;

/**
Expand Down Expand Up @@ -60,6 +63,10 @@ public class BalancesAdjustmentModificationInfos extends ModificationInfos {

private UUID loadFlowParametersId;

@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(description = "embedded load flow parameters (populated only on export)")
private LoadFlowParametersInfos loadFlowParameters;

@Builder.Default
private boolean withRatioTapChangers = DEFAULT_WITH_RATIO_TAP_CHANGERS;

Expand All @@ -85,4 +92,16 @@ public AbstractModification toModification() {
public ReportNode createSubReportNode(ReportNode reportNode) {
return reportNode.newReportNode().withMessageTemplate("network.modification.balancesAdjustment").add();
}

@Override
public List<UUID> getReferencedLoadFlowParametersUuids() {
return loadFlowParametersId != null ? List.of(loadFlowParametersId) : List.of();
}

@Override
public void embedReferencedData(Map<UUID, AbstractFilter> filters, Map<UUID, LoadFlowParametersInfos> lfParams) {
if (loadFlowParametersId != null) {
this.loadFlowParameters = lfParams.get(loadFlowParametersId);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,16 @@
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import org.gridsuite.filter.AbstractFilter;
import org.gridsuite.modification.dto.annotation.ModificationErrorTypeName;
import org.gridsuite.modification.dto.byfilter.formula.FormulaInfos;
import org.gridsuite.modification.modifications.byfilter.ByFormulaModification;

import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
import java.util.stream.Stream;

/**
* @author Seddik Yengui <Seddik.yengui at rte-france.com>
Expand Down Expand Up @@ -55,4 +60,29 @@ public ByFormulaModification toModification() {
public ReportNode createSubReportNode(ReportNode reportNode) {
return reportNode.newReportNode().withMessageTemplate("network.modification.byFormulaModification").add();
}

@Override
public List<UUID> getReferencedFilterUuids() {
return formulaInfosList == null
? List.of()
: formulaInfosList.stream()
.flatMap(f -> f.getFilters() == null ? Stream.empty() : f.getFilters().stream())
.map(FilterInfos::getId)
.filter(Objects::nonNull).toList();
}

@Override
public void embedReferencedData(Map<UUID, AbstractFilter> filters,
Map<UUID, LoadFlowParametersInfos> lfParams) {
if (formulaInfosList == null) {
return;
}
formulaInfosList.stream()
.flatMap(f -> f.getFilters() == null ? Stream.empty() : f.getFilters().stream())
.forEach(ref -> {
if (ref.getId() != null) {
ref.setFilterContent(filters.get(ref.getId()));
}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
*/
package org.gridsuite.modification.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.gridsuite.filter.AbstractFilter;

import java.util.UUID;

Expand All @@ -30,4 +32,7 @@ public class FilterInfos {
@Schema(description = "name of filter")
private String name;

@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(description = "embedded filter content (populated only on export)")
private AbstractFilter filterContent;
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,16 @@
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import org.gridsuite.filter.AbstractFilter;
import org.gridsuite.modification.dto.annotation.ModificationErrorTypeName;
import org.gridsuite.modification.dto.byfilter.assignment.AssignmentInfos;
import org.gridsuite.modification.modifications.byfilter.ModificationByAssignment;

import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
import java.util.stream.Stream;

/**
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
Expand Down Expand Up @@ -52,4 +57,29 @@ public ModificationByAssignment toModification() {
public ReportNode createSubReportNode(ReportNode reportNode) {
return reportNode.newReportNode().withMessageTemplate("network.modification.modificationByAssignment").add();
}

@Override
public List<UUID> getReferencedFilterUuids() {
return assignmentInfosList == null
? List.of()
: assignmentInfosList.stream()
.flatMap(a -> a.getFilters() == null ? Stream.empty() : a.getFilters().stream())
.map(FilterInfos::getId)
.filter(Objects::nonNull)
.toList();
}

@Override
public void embedReferencedData(Map<UUID, AbstractFilter> filters, Map<UUID, LoadFlowParametersInfos> lfParams) {
if (assignmentInfosList == null) {
return;
}
assignmentInfosList.stream()
.flatMap(a -> a.getFilters() == null ? Stream.empty() : a.getFilters().stream())
.forEach(ref -> {
if (ref.getId() != null) {
ref.setFilterContent(filters.get(ref.getId()));
}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.gridsuite.filter.AbstractFilter;
import org.gridsuite.modification.ModificationType;
import org.gridsuite.modification.NetworkModificationException;
import org.gridsuite.modification.dto.annotation.ModificationErrorTypeName;
Expand All @@ -23,6 +24,7 @@
import org.gridsuite.modification.modifications.AbstractModification;

import java.time.Instant;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicReference;
Expand Down Expand Up @@ -154,4 +156,19 @@ public Map<String, String> getMapMessageValues() {
public void check() {
// To check input DTO before hypothesis creation. Nothing to check here
}

@JsonIgnore
public List<UUID> getReferencedFilterUuids() {
return List.of();
}

@JsonIgnore
public List<UUID> getReferencedLoadFlowParametersUuids() {
return List.of();
}

public void embedReferencedData(Map<UUID, AbstractFilter> filters,
Map<UUID, LoadFlowParametersInfos> lfParams) {
// no-op
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,13 @@ abstract class AbstractModificationByAssignmentTest extends AbstractNetworkModif
protected static final UUID FILTER_ID_6 = UUID.randomUUID();
protected static final UUID FILTER_WITH_ALL_WRONG_IDS = UUID.randomUUID();
protected static final UUID FILTER_WITH_ONE_WRONG_ID = UUID.randomUUID();
protected final FilterInfos filter1 = new FilterInfos(FILTER_ID_1, "filter1");
protected final FilterInfos filter2 = new FilterInfos(FILTER_ID_2, "filter2");
protected final FilterInfos filter3 = new FilterInfos(FILTER_ID_3, "filter3");
protected final FilterInfos filter4 = new FilterInfos(FILTER_ID_4, "filter4");
protected final FilterInfos filter5 = new FilterInfos(FILTER_ID_5, "filter5");
protected final FilterInfos filter6 = new FilterInfos(FILTER_ID_6, "filter6");
protected final FilterInfos filterWithOneWrongId = new FilterInfos(FILTER_WITH_ONE_WRONG_ID, "filterWithOneWrongId");
protected final FilterInfos filter1 = new FilterInfos(FILTER_ID_1, "filter1", null);
protected final FilterInfos filter2 = new FilterInfos(FILTER_ID_2, "filter2", null);
protected final FilterInfos filter3 = new FilterInfos(FILTER_ID_3, "filter3", null);
protected final FilterInfos filter4 = new FilterInfos(FILTER_ID_4, "filter4", null);
protected final FilterInfos filter5 = new FilterInfos(FILTER_ID_5, "filter5", null);
protected final FilterInfos filter6 = new FilterInfos(FILTER_ID_6, "filter6", null);
protected final FilterInfos filterWithOneWrongId = new FilterInfos(FILTER_WITH_ONE_WRONG_ID, "filterWithOneWrongId", null);
protected final ReportNode reportNode = ReportNode.newRootReportNode()
.withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME)
.withMessageTemplate("test")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ protected List<AssignmentInfos<?>> getAssignmentInfos() {
DoubleAssignmentInfos assignmentInfos20 = DoubleAssignmentInfos.builder()
.editedField(GeneratorField.Q_PERCENT.name())
.value(120.)
.filters(List.of(new FilterInfos(UUID.randomUUID(), "filterNotFound")))
.filters(List.of(new FilterInfos(UUID.randomUUID(), "filterNotFound", null)))
.build();

List<AssignmentInfos<?>> infosList = super.getAssignmentInfos();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,14 @@ abstract class AbstractByFormulaModificationTest extends AbstractNetworkModifica
protected static final UUID FILTER_ID_7 = UUID.randomUUID();
protected static final UUID FILTER_WITH_ALL_WRONG_IDS = UUID.randomUUID();
protected static final UUID FILTER_WITH_ONE_WRONG_ID = UUID.randomUUID();
protected final FilterInfos filter1 = new FilterInfos(FILTER_ID_1, "filter1");
protected final FilterInfos filter2 = new FilterInfos(FILTER_ID_2, "filter2");
protected final FilterInfos filter3 = new FilterInfos(FILTER_ID_3, "filter3");
protected final FilterInfos filter4 = new FilterInfos(FILTER_ID_4, "filter4");
protected final FilterInfos filter5 = new FilterInfos(FILTER_ID_5, "filter5");
protected final FilterInfos filter6 = new FilterInfos(FILTER_ID_6, "filter6");
protected final FilterInfos filter7 = new FilterInfos(FILTER_ID_7, "filter7");
protected final FilterInfos filterWithOneWrongId = new FilterInfos(FILTER_WITH_ONE_WRONG_ID, "filterWithOneWrongId");
protected final FilterInfos filter1 = new FilterInfos(FILTER_ID_1, "filter1", null);
protected final FilterInfos filter2 = new FilterInfos(FILTER_ID_2, "filter2", null);
protected final FilterInfos filter3 = new FilterInfos(FILTER_ID_3, "filter3", null);
protected final FilterInfos filter4 = new FilterInfos(FILTER_ID_4, "filter4", null);
protected final FilterInfos filter5 = new FilterInfos(FILTER_ID_5, "filter5", null);
protected final FilterInfos filter6 = new FilterInfos(FILTER_ID_6, "filter6", null);
protected final FilterInfos filter7 = new FilterInfos(FILTER_ID_7, "filter7", null);
protected final FilterInfos filterWithOneWrongId = new FilterInfos(FILTER_WITH_ONE_WRONG_ID, "filterWithOneWrongId", null);
protected final ReportNode reportNode = ReportNode.newRootReportNode()
.withResourceBundles(NetworkModificationReportResourceBundle.BASE_NAME)
.withMessageTemplate("test")
Expand Down
Loading