Skip to content

Commit a8cbb06

Browse files
committed
Add Property to limit sets modification
1 parent 772efb7 commit a8cbb06

File tree

5 files changed

+85
-10
lines changed

5 files changed

+85
-10
lines changed

src/main/java/org/gridsuite/modification/server/entities/equipment/creation/OperationalLimitsGroupEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public static List<OperationalLimitsGroupInfos> fromOperationalLimitsGroupsEntit
8585
.applicability(limitsGroupEntity.getApplicability())
8686
.currentLimits(limitsGroupEntity.getCurrentLimits().toCurrentLimitsInfos())
8787
.limitsProperties(limitsGroupEntity.getLimitsProperties()
88-
.stream().map(LimitsPropertyEntity::toCurrentLimitsInfos).toList())
88+
.stream().map(LimitsPropertyEntity::toLimitsPropertyInfos).toList())
8989
.build()
9090
)
9191
.collect(Collectors.toList());

src/main/java/org/gridsuite/modification/server/entities/equipment/modification/LimitsPropertyEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public static LimitsPropertyEntity fromLimitsPropertyInfos(LimitsPropertyInfos p
3131
return new LimitsPropertyEntity(null, propertyInfos.name(), propertyInfos.value());
3232
}
3333

34-
public LimitsPropertyInfos toCurrentLimitsInfos() {
34+
public LimitsPropertyInfos toLimitsPropertyInfos() {
3535
return new LimitsPropertyInfos(name, value);
3636
}
3737
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package org.gridsuite.modification.server.entities.equipment.modification;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.GeneratedValue;
6+
import jakarta.persistence.GenerationType;
7+
import jakarta.persistence.Id;
8+
import jakarta.persistence.Table;
9+
import lombok.AllArgsConstructor;
10+
import lombok.Getter;
11+
import lombok.NoArgsConstructor;
12+
import lombok.Setter;
13+
import org.gridsuite.modification.dto.LimitsPropertyInfos;
14+
15+
import java.util.UUID;
16+
17+
@Getter
18+
@Setter
19+
@NoArgsConstructor
20+
@AllArgsConstructor
21+
@Entity
22+
@Table(name = "limits_property_modification")
23+
public class LimitsPropertyModificationEntity {
24+
@Id
25+
@GeneratedValue(strategy = GenerationType.AUTO)
26+
@Column(name = "id")
27+
private UUID id;
28+
29+
@Column(name = "name", nullable = false)
30+
private String name;
31+
32+
@Column(name = "value", nullable = false)
33+
private String value;
34+
35+
public static LimitsPropertyModificationEntity fromLimitsPropertyInfos(LimitsPropertyInfos propertyInfos) {
36+
return new LimitsPropertyModificationEntity(null, propertyInfos.name(), propertyInfos.value());
37+
}
38+
39+
public LimitsPropertyInfos toLimitsPropertyInfos() {
40+
return new LimitsPropertyInfos(name, value);
41+
}
42+
43+
}

src/main/java/org/gridsuite/modification/server/entities/equipment/modification/OperationalLimitsGroupModificationEntity.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111
import lombok.Getter;
1212
import lombok.NoArgsConstructor;
1313
import lombok.NonNull;
14+
import org.gridsuite.modification.dto.LimitsPropertyInfos;
1415
import org.gridsuite.modification.dto.OperationalLimitsGroupInfos;
1516
import org.gridsuite.modification.dto.OperationalLimitsGroupModificationInfos;
1617
import org.gridsuite.modification.dto.OperationalLimitsGroupModificationType;
1718
import org.gridsuite.modification.dto.TemporaryLimitModificationType;
1819
import org.springframework.util.CollectionUtils;
1920

21+
import java.util.ArrayList;
2022
import java.util.List;
2123
import java.util.Objects;
2224
import java.util.UUID;
@@ -49,18 +51,30 @@ public class OperationalLimitsGroupModificationEntity {
4951
))
5052
private CurrentLimitsModificationEntity currentLimits;
5153

52-
@Column(name = "modificationType")
54+
@Column(name = "modification_type")
5355
@Enumerated(EnumType.STRING)
5456
private OperationalLimitsGroupModificationType modificationType;
5557

56-
@Column(name = "temporaryLimitsModificationType")
58+
@Column(name = "temporary_limits_modification_type")
5759
@Enumerated(EnumType.STRING)
5860
private TemporaryLimitModificationType temporaryLimitsModificationType;
5961

6062
@Column(name = "applicability")
6163
@Enumerated(EnumType.STRING)
6264
private OperationalLimitsGroupInfos.Applicability applicability;
6365

66+
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
67+
@JoinColumn(name = "operational_limit_group_id", foreignKey = @ForeignKey(name = "operational_limit_group_modification_id_fk"))
68+
private List<LimitsPropertyModificationEntity> limitsProperties;
69+
70+
private static List<LimitsPropertyModificationEntity> toLimitPropertyEntities(List<LimitsPropertyInfos> properties) {
71+
List<LimitsPropertyModificationEntity> result = new ArrayList<>();
72+
if (!CollectionUtils.isEmpty(properties)) {
73+
result = properties.stream().map(LimitsPropertyModificationEntity::fromLimitsPropertyInfos).toList();
74+
}
75+
return result;
76+
}
77+
6478
public static List<OperationalLimitsGroupModificationEntity> toOperationalLimitsGroupsEntities(@NonNull List<OperationalLimitsGroupModificationInfos> limitsGroups) {
6579
return limitsGroups.stream()
6680
.filter(Objects::nonNull)
@@ -71,10 +85,9 @@ public static List<OperationalLimitsGroupModificationEntity> toOperationalLimits
7185
new CurrentLimitsModificationEntity(limitsGroup.getCurrentLimits()),
7286
limitsGroup.getModificationType(),
7387
limitsGroup.getTemporaryLimitsModificationType(),
74-
limitsGroup.getApplicability()
75-
)
76-
)
77-
.toList();
88+
limitsGroup.getApplicability(),
89+
toLimitPropertyEntities(limitsGroup.getLimitsProperties()))
90+
).toList();
7891
}
7992

8093
public static List<OperationalLimitsGroupModificationInfos> fromOperationalLimitsGroupsEntities(List<OperationalLimitsGroupModificationEntity> limitsGroupsEntities) {
@@ -87,6 +100,8 @@ public static List<OperationalLimitsGroupModificationInfos> fromOperationalLimit
87100
.modificationType(limitsGroupEntity.getModificationType())
88101
.temporaryLimitsModificationType(limitsGroupEntity.getTemporaryLimitsModificationType())
89102
.applicability(limitsGroupEntity.getApplicability())
103+
.limitsProperties(limitsGroupEntity.getLimitsProperties().stream().map(
104+
LimitsPropertyModificationEntity::toLimitsPropertyInfos).toList())
90105
.build()
91106
)
92107
.collect(Collectors.toList());

src/main/resources/db/changelog/changesets/changelog_20251009T130154Z.xml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
22
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd">
3-
<changeSet author="elcheikhbas (generated)" id="1760014971491-35">
3+
<changeSet author="elcheikhbas (generated)" id="1760014971491-1">
44
<createTable tableName="limits_property">
55
<column name="id" type="UUID">
66
<constraints nullable="false" primaryKey="true" primaryKeyName="limits_propertyPK"/>
@@ -14,7 +14,24 @@
1414
<column name="operational_limit_group_id" type="UUID"/>
1515
</createTable>
1616
</changeSet>
17-
<changeSet author="elcheikhbas (generated)" id="1760014971491-49">
17+
<changeSet author="elcheikhbas (generated)" id="1760014971491-2">
1818
<addForeignKeyConstraint baseColumnNames="operational_limit_group_id" baseTableName="limits_property" constraintName="operational_limit_group_id_fk" deferrable="false" initiallyDeferred="false" referencedColumnNames="uuid" referencedTableName="operational_limits_group" validate="true"/>
1919
</changeSet>
20+
<changeSet author="elcheikhbas (generated)" id="1760357420884-3">
21+
<createTable tableName="limits_property_modification">
22+
<column name="id" type="UUID">
23+
<constraints nullable="false" primaryKey="true" primaryKeyName="limits_property_modificationPK"/>
24+
</column>
25+
<column name="name" type="VARCHAR(255)">
26+
<constraints nullable="false"/>
27+
</column>
28+
<column name="value" type="VARCHAR(255)">
29+
<constraints nullable="false"/>
30+
</column>
31+
<column name="operational_limit_group_id" type="UUID"/>
32+
</createTable>
33+
</changeSet>
34+
<changeSet author="elcheikhbas (generated)" id="1760014971491-4">
35+
<addForeignKeyConstraint baseColumnNames="operational_limit_group_id" baseTableName="limits_property_modification" constraintName="operational_limit_group_modification_id_fk" deferrable="false" initiallyDeferred="false" referencedColumnNames="uuid" referencedTableName="operational_limits_group_modification" validate="true"/>
36+
</changeSet>
2037
</databaseChangeLog>

0 commit comments

Comments
 (0)