Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modification by filter (without formula data migration) #526

Merged
merged 56 commits into from
Oct 3, 2024
Merged
Changes from 1 commit
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
b949a9a
Modification by filter
thangqp Aug 1, 2024
dc12a0f
Add changelog file
thangqp Aug 1, 2024
f85cb80
change naming
thangqp Aug 1, 2024
4968e1a
Merge from main
thangqp Aug 21, 2024
2a84f1c
Renaming
thangqp Aug 21, 2024
e4902f1
Enhance reuse
thangqp Aug 21, 2024
b83e7a8
refactor entities by filter
thangqp Aug 22, 2024
405d8c8
Merge from main
thangqp Aug 26, 2024
54aaadf
Using JOIN strategy for tables
thangqp Aug 27, 2024
ce031c0
Compilation issue
thangqp Aug 27, 2024
1b75aef
Migration formula data
thangqp Aug 28, 2024
300e26c
Correct dataType null in dto
thangqp Aug 29, 2024
81d8fa0
Modification by filter (without formula data migration)
thangqp Sep 2, 2024
6fbb9e7
Merge branch 'main' into modification_by_filter_no_migration_data
thangqp Sep 2, 2024
68277b8
Merge branch 'main' into modification_by_filter_no_migration_data
thangqp Sep 2, 2024
2e6305a
Report rectification
thangqp Sep 2, 2024
6e2c497
Merge branch 'modification_by_filter_no_migration_data' of https://gi…
thangqp Sep 2, 2024
f1b02db
add support enum, boolean, string data types
thangqp Sep 3, 2024
c25ffa3
add default case
thangqp Sep 3, 2024
f761ba1
Remove STRING data type
thangqp Sep 4, 2024
72783fa
compilation error
thangqp Sep 4, 2024
22e8458
code clean
thangqp Sep 4, 2024
0cbafe5
untyping value
thangqp Sep 4, 2024
d2ed37c
NPE with property
thangqp Sep 5, 2024
097f1fe
Tests
thangqp Sep 5, 2024
aafd7a6
clean code
thangqp Sep 5, 2024
6dca611
Merge branch 'main' into modification_by_filter_no_migration_data
thangqp Sep 6, 2024
b867e95
merge from main
thangqp Sep 9, 2024
f1dce77
remove TODO
thangqp Sep 9, 2024
932e7b5
Voltage Level test
thangqp Sep 10, 2024
cd12300
Battery test
thangqp Sep 10, 2024
efaacad
Shunt compensator test
thangqp Sep 10, 2024
f1d4fbc
2WT test
thangqp Sep 10, 2024
7c53cf1
Test for property
thangqp Sep 10, 2024
2964647
Merge branch 'main' into modification_by_filter_no_migration_data
thangqp Sep 10, 2024
328a825
Merge branch 'main' into modification_by_filter_no_migration_data
thangqp Sep 11, 2024
cb66651
add @NotNull annotation
thangqp Sep 12, 2024
715f81a
Renaming to assignment
thangqp Sep 12, 2024
14ad0ff
Merge branch 'main' into modification_by_filter_no_migration_data
thangqp Sep 12, 2024
eba41e9
correct remarks
thangqp Sep 12, 2024
5968284
Unit test fail
thangqp Sep 12, 2024
8781f3b
Merge branch 'main' into modification_by_filter_no_migration_data
Mathieu-Deharbe Sep 17, 2024
0177a47
correct for comments of Mathieu
thangqp Sep 17, 2024
4c626cc
Merge from main
thangqp Sep 26, 2024
1823ef9
fix unused report
thangqp Sep 26, 2024
bab677c
fix test
thangqp Sep 27, 2024
42be9a0
fix failed test
thangqp Sep 30, 2024
0bf48c3
keep editable check
thangqp Sep 30, 2024
62bd6de
keep test valid
thangqp Sep 30, 2024
57a61f7
clean test
thangqp Sep 30, 2024
9372489
clean test
thangqp Sep 30, 2024
76e7807
Parse int
thangqp Oct 1, 2024
ef1ba44
revert to parseDouble
thangqp Oct 1, 2024
fa0a5fa
When exception show warning and not stop next application
thangqp Oct 1, 2024
6638553
Merge branch 'main' into modification_by_filter_no_migration_data
thangqp Oct 3, 2024
ec90b8f
Merge branch 'main' into modification_by_filter_no_migration_data
thangqp Oct 3, 2024
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
Prev Previous commit
Next Next commit
Correct dataType null in dto
thangqp committed Aug 29, 2024
commit 300e26c989bd6922a8f404594fc92800b43db200
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@
import lombok.experimental.SuperBuilder;
import org.gridsuite.modification.server.ModificationType;
import org.gridsuite.modification.server.dto.annotation.ModificationErrorTypeName;
import org.gridsuite.modification.server.dto.byfilter.simple.SimpleModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.AbstractSimpleModificationByFilterInfos;
import org.gridsuite.modification.server.entities.equipment.modification.byfilter.BySimpleModificationEntity;
import org.gridsuite.modification.server.modifications.byfilter.BySimpleModification;

@@ -38,7 +38,7 @@ public class BySimpleModificationInfos extends ModificationInfos {
private IdentifiableType identifiableType;

@Schema(description = "list of modifications")
private List<? extends SimpleModificationByFilterInfos<?>> simpleModificationInfosList;
private List<? extends AbstractSimpleModificationByFilterInfos<?>> simpleModificationInfosList;

@Override
public BySimpleModificationEntity toEntity() {
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@
import com.powsybl.iidm.network.Battery;
import com.powsybl.iidm.network.extensions.ActivePowerControl;
import com.powsybl.iidm.network.extensions.ActivePowerControlAdder;
import org.gridsuite.modification.server.dto.byfilter.simple.SimpleModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.AbstractSimpleModificationByFilterInfos;

/**
* @author Seddik Yengui <Seddik.yengui at rte-france.com>
@@ -48,7 +48,7 @@ public static void setNewValue(Battery battery, String batteryField, Double newV
}
}

public static void setNewValue(Battery battery, SimpleModificationByFilterInfos<?> fieldModificationInfos) {
public static void setNewValue(Battery battery, AbstractSimpleModificationByFilterInfos<?> fieldModificationInfos) {
switch (fieldModificationInfos.getDataType()) {
case DOUBLE -> setNewValue(battery, fieldModificationInfos.getEditedField(), (Double) fieldModificationInfos.getValue());
}
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@

import com.powsybl.iidm.network.Generator;
import com.powsybl.iidm.network.extensions.*;
import org.gridsuite.modification.server.dto.byfilter.simple.SimpleModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.AbstractSimpleModificationByFilterInfos;

/**
* @author Seddik Yengui <Seddik.yengui at rte-france.com>
@@ -141,7 +141,7 @@ public static void setNewValue(Generator generator, String generatorField, Doubl
}
}

public static void setNewValue(Generator generator, SimpleModificationByFilterInfos<?> fieldModificationInfos) {
public static void setNewValue(Generator generator, AbstractSimpleModificationByFilterInfos<?> fieldModificationInfos) {
switch (fieldModificationInfos.getDataType()) {
case DOUBLE -> setNewValue(generator, fieldModificationInfos.getEditedField(), (Double) fieldModificationInfos.getValue());
}
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@
package org.gridsuite.modification.server.dto.byfilter.equipmentfield;

import com.powsybl.iidm.network.Load;
import org.gridsuite.modification.server.dto.byfilter.simple.SimpleModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.AbstractSimpleModificationByFilterInfos;

/**
* @author Seddik Yengui <Seddik.yengui at rte-france.com>
@@ -34,7 +34,7 @@ public static void setNewValue(Load load, String loadField, Double newValue) {
}
}

public static void setNewValue(Load load, SimpleModificationByFilterInfos<?> fieldModificationInfos) {
public static void setNewValue(Load load, AbstractSimpleModificationByFilterInfos<?> fieldModificationInfos) {
switch (fieldModificationInfos.getDataType()) {
case DOUBLE -> setNewValue(load, fieldModificationInfos.getEditedField(), (Double) fieldModificationInfos.getValue());
}
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@
import com.powsybl.iidm.network.ShuntCompensatorModelType;
import com.powsybl.iidm.network.VoltageLevel;
import org.gridsuite.modification.server.NetworkModificationException;
import org.gridsuite.modification.server.dto.byfilter.simple.SimpleModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.AbstractSimpleModificationByFilterInfos;

/**
* @author Seddik Yengui <Seddik.yengui at rte-france.com>
@@ -59,7 +59,7 @@ public static void setNewValue(ShuntCompensator shuntCompensator, String shuntCo
}
}

public static void setNewValue(ShuntCompensator shuntCompensator, SimpleModificationByFilterInfos<?> fieldModificationInfos) {
public static void setNewValue(ShuntCompensator shuntCompensator, AbstractSimpleModificationByFilterInfos<?> fieldModificationInfos) {
switch (fieldModificationInfos.getDataType()) {
case DOUBLE -> setNewValue(shuntCompensator, fieldModificationInfos.getEditedField(), (Double) fieldModificationInfos.getValue());
}
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
import com.powsybl.iidm.network.PhaseTapChanger;
import com.powsybl.iidm.network.RatioTapChanger;
import com.powsybl.iidm.network.TwoWindingsTransformer;
import org.gridsuite.modification.server.dto.byfilter.simple.SimpleModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.AbstractSimpleModificationByFilterInfos;

public enum TwoWindingsTransformerField {
R,
@@ -69,7 +69,7 @@ public static void setNewValue(TwoWindingsTransformer transformer, String twoWin
}
}

public static void setNewValue(TwoWindingsTransformer transformer, SimpleModificationByFilterInfos<?> fieldModificationInfos) {
public static void setNewValue(TwoWindingsTransformer transformer, AbstractSimpleModificationByFilterInfos<?> fieldModificationInfos) {
switch (fieldModificationInfos.getDataType()) {
case DOUBLE -> setNewValue(transformer, fieldModificationInfos.getEditedField(), (Double) fieldModificationInfos.getValue());
}
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@
import com.powsybl.iidm.network.VoltageLevel;
import com.powsybl.iidm.network.extensions.IdentifiableShortCircuit;
import com.powsybl.iidm.network.extensions.IdentifiableShortCircuitAdder;
import org.gridsuite.modification.server.dto.byfilter.simple.SimpleModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.AbstractSimpleModificationByFilterInfos;

/**
* @author Seddik Yengui <Seddik.yengui at rte-france.com>
@@ -59,7 +59,7 @@ public static void setNewValue(VoltageLevel voltageLevel, String voltageLevelFie
}
}

public static void setNewValue(VoltageLevel voltageLevel, SimpleModificationByFilterInfos<?> fieldModificationInfos) {
public static void setNewValue(VoltageLevel voltageLevel, AbstractSimpleModificationByFilterInfos<?> fieldModificationInfos) {
switch (fieldModificationInfos.getDataType()) {
case DOUBLE -> setNewValue(voltageLevel, fieldModificationInfos.getEditedField(), (Double) fieldModificationInfos.getValue());
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2023, RTE (http://www.rte-france.com)
* Copyright (c) 2024, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
@@ -12,11 +12,12 @@
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import org.gridsuite.modification.server.dto.byfilter.DataType;
import org.gridsuite.modification.server.dto.byfilter.AbstractModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.DataType;
import org.gridsuite.modification.server.entities.equipment.modification.byfilter.simple.SimpleModificationEntity;

/**
@@ -37,14 +38,14 @@
@JsonInclude(JsonInclude.Include.NON_NULL)
@SuperBuilder
@NoArgsConstructor
@Data
public class SimpleModificationByFilterInfos<T> extends AbstractModificationByFilterInfos {
@Schema(description = "Data type")
private DataType dataType;

@Getter
@Setter
public abstract class AbstractSimpleModificationByFilterInfos<T> extends AbstractModificationByFilterInfos {
@Schema(description = "Value")
private T value;

public abstract DataType getDataType();

@JsonIgnore
public SimpleModificationEntity toEntity() {
return new SimpleModificationEntity(this);
Original file line number Diff line number Diff line change
@@ -7,13 +7,20 @@

package org.gridsuite.modification.server.dto.byfilter.simple;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.gridsuite.modification.server.dto.byfilter.DataType;

/**
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
*/
@SuperBuilder
@NoArgsConstructor
public class BooleanModificationByFilterInfos extends SimpleModificationByFilterInfos<Boolean> {
public class BooleanModificationByFilterInfos extends AbstractSimpleModificationByFilterInfos<Boolean> {
@Override
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
public DataType getDataType() {
return DataType.BOOLEAN;
}
}
Original file line number Diff line number Diff line change
@@ -7,13 +7,20 @@

package org.gridsuite.modification.server.dto.byfilter.simple;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.gridsuite.modification.server.dto.byfilter.DataType;

/**
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
*/
@SuperBuilder
@NoArgsConstructor
public class DoubleModificationByFilterInfos extends SimpleModificationByFilterInfos<Double> {
public class DoubleModificationByFilterInfos extends AbstractSimpleModificationByFilterInfos<Double> {
@Override
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
public DataType getDataType() {
return DataType.DOUBLE;
}
}
Original file line number Diff line number Diff line change
@@ -7,16 +7,20 @@

package org.gridsuite.modification.server.dto.byfilter.simple;

import lombok.Data;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.gridsuite.modification.server.dto.byfilter.DataType;

/**
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
*/
@SuperBuilder
@NoArgsConstructor
@Data
public class EnumModificationByFilterInfos extends StringModificationByFilterInfos {

@Override
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
public DataType getDataType() {
return DataType.ENUM;
}
}
Original file line number Diff line number Diff line change
@@ -7,13 +7,20 @@

package org.gridsuite.modification.server.dto.byfilter.simple;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.gridsuite.modification.server.dto.byfilter.DataType;

/**
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
*/
@SuperBuilder
@NoArgsConstructor
public class IntegerModificationByFilterInfos extends SimpleModificationByFilterInfos<Integer> {
public class IntegerModificationByFilterInfos extends AbstractSimpleModificationByFilterInfos<Integer> {
@Override
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
public DataType getDataType() {
return DataType.INTEGER;
}
}
Original file line number Diff line number Diff line change
@@ -7,22 +7,32 @@

package org.gridsuite.modification.server.dto.byfilter.simple;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import org.gridsuite.modification.server.dto.byfilter.DataType;
import org.gridsuite.modification.server.entities.equipment.modification.byfilter.simple.SimpleModificationEntity;

/**
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
*/
@SuperBuilder
@NoArgsConstructor
@Data
@Getter
@Setter
public class PropertyModificationByFilterInfos extends StringModificationByFilterInfos {
@Schema(description = "Property name")
private String propertyName;

@Override
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
public DataType getDataType() {
return DataType.PROPERTY;
}

@Override
public SimpleModificationEntity toEntity() {
SimpleModificationEntity simpleModificationEntity = super.toEntity();
Original file line number Diff line number Diff line change
@@ -7,15 +7,24 @@

package org.gridsuite.modification.server.dto.byfilter.simple;

import lombok.Data;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
import org.gridsuite.modification.server.dto.byfilter.DataType;

/**
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
*/
@SuperBuilder
@NoArgsConstructor
@Data
public class StringModificationByFilterInfos extends SimpleModificationByFilterInfos<String> {
@Getter
@Setter
public class StringModificationByFilterInfos extends AbstractSimpleModificationByFilterInfos<String> {
@Override
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
public DataType getDataType() {
return DataType.STRING;
}
}
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@
import lombok.Setter;
import org.gridsuite.modification.server.dto.BySimpleModificationInfos;
import org.gridsuite.modification.server.dto.ModificationInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.SimpleModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.AbstractSimpleModificationByFilterInfos;
import org.gridsuite.modification.server.entities.ModificationEntity;
import org.gridsuite.modification.server.entities.equipment.modification.byfilter.simple.SimpleModificationEntity;

@@ -45,13 +45,13 @@ private void assignAttributes(BySimpleModificationInfos bySimpleModificationInfo
if (simpleModificationEntities == null) {
simpleModificationEntities = bySimpleModificationInfos.getSimpleModificationInfosList()
.stream()
.map(SimpleModificationByFilterInfos::toEntity)
.map(AbstractSimpleModificationByFilterInfos::toEntity)
.toList();
} else {
simpleModificationEntities.clear();
simpleModificationEntities.addAll(bySimpleModificationInfos.getSimpleModificationInfosList()
.stream()
.map(SimpleModificationByFilterInfos::toEntity)
.map(AbstractSimpleModificationByFilterInfos::toEntity)
.toList());
}
}
Original file line number Diff line number Diff line change
@@ -35,19 +35,18 @@ public class SimpleModificationEntity extends ModificationByFilterEntity {
@Column
private String propertyName; // dedicated to an exceptional case, i.e. modify a property

public SimpleModificationEntity(SimpleModificationByFilterInfos<?> simpleModificationInfos) {
public SimpleModificationEntity(AbstractSimpleModificationByFilterInfos<?> simpleModificationInfos) {
super(simpleModificationInfos);
this.dataType = simpleModificationInfos.getDataType();
this.value = Optional.ofNullable(simpleModificationInfos.getValue()).map(Object::toString).orElse(null);
}

protected void assignAttributes(SimpleModificationByFilterInfos<?> simpleModificationInfos) {
protected void assignAttributes(AbstractSimpleModificationByFilterInfos<?> simpleModificationInfos) {
super.assignAttributes(simpleModificationInfos);
simpleModificationInfos.setDataType(dataType);
}

public SimpleModificationByFilterInfos<?> toSimpleModificationInfos() {
SimpleModificationByFilterInfos<?> simpleModificationByFilterInfos = switch (dataType) {
public AbstractSimpleModificationByFilterInfos<?> toSimpleModificationInfos() {
AbstractSimpleModificationByFilterInfos<?> simpleModificationByFilterInfos = switch (dataType) {
case BOOLEAN -> BooleanModificationByFilterInfos.builder()
.value(value != null ? Boolean.valueOf(value) : null)
.build();
Original file line number Diff line number Diff line change
@@ -215,7 +215,7 @@ private void createByFilterModificationReports(List<ReportNode> reports, Abstrac
}

reports.add(ReportNode.newRootReportNode()
.withMessageTemplate(KEY_EDITED_FIELD_FILTER + reports.size(), " Edited field :${" + KEY_FIELD_NAME + "}")
.withMessageTemplate(KEY_EDITED_FIELD_FILTER + reports.size(), " Edited field : ${" + KEY_FIELD_NAME + "}")
.withUntypedValue(KEY_FIELD_NAME, filterModificationInfos.getEditedField())
.withSeverity(TypedValue.INFO_SEVERITY)
.build());
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@
import org.gridsuite.modification.server.dto.byfilter.DataType;
import org.gridsuite.modification.server.dto.byfilter.equipmentfield.*;
import org.gridsuite.modification.server.dto.byfilter.simple.PropertyModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.SimpleModificationByFilterInfos;
import org.gridsuite.modification.server.dto.byfilter.simple.AbstractSimpleModificationByFilterInfos;

import java.util.Collections;
import java.util.List;
@@ -33,7 +33,7 @@ public BySimpleModification(BySimpleModificationInfos modificationInfos) {

@Override
public String getModificationLabel() {
return "modification by filter";
return "simple modification";
}

@Override
@@ -63,7 +63,7 @@ protected boolean preCheckValue(Identifiable<?> identifiable, AbstractModificati

@Override
protected Object applyValue(Identifiable<?> identifiable, AbstractModificationByFilterInfos filterModificationInfos) {
SimpleModificationByFilterInfos<?> simpleModificationInfos = (SimpleModificationByFilterInfos<?>) filterModificationInfos;
AbstractSimpleModificationByFilterInfos<?> simpleModificationInfos = (AbstractSimpleModificationByFilterInfos<?>) filterModificationInfos;
if (simpleModificationInfos.getDataType() == DataType.PROPERTY) {
identifiable.setProperty(
((PropertyModificationByFilterInfos) simpleModificationInfos).getPropertyName(),