Skip to content

Commit

Permalink
Add substations to EquipmentInfos (#318)
Browse files Browse the repository at this point in the history
Add substations to EquipmentInfos

Signed-off-by: achour94 <[email protected]>
  • Loading branch information
achour94 authored Oct 2, 2023
1 parent cfaa46c commit 62dacb2
Show file tree
Hide file tree
Showing 4 changed files with 179 additions and 46 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
Copyright (c) 2021, 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/.
*/
package org.gridsuite.modification.server.dto;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.SuperBuilder;

/**
* @author Achour Berrahma <achour.berrahma at rte-france.com>
*/
@SuperBuilder
@NoArgsConstructor
@Getter
@ToString
@EqualsAndHashCode
public class SubstationInfos {
private String id;
private String name;
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.gridsuite.modification.server.NetworkModificationException;
import org.gridsuite.modification.server.dto.SubstationInfos;
import org.gridsuite.modification.server.dto.VoltageLevelInfos;
import org.springframework.data.annotation.TypeAlias;
import org.springframework.data.elasticsearch.annotations.*;
import org.springframework.lang.NonNull;

import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
* @author Slimane Amar <slimane.amar at rte-france.com>
Expand Down Expand Up @@ -48,40 +48,57 @@ public class EquipmentInfos extends BasicEquipmentInfos {
@Field(type = FieldType.Nested, includeInParent = true)
private Set<VoltageLevelInfos> voltageLevels;

public static Set<VoltageLevelInfos> getVoltageLevels(@NonNull Identifiable<?> identifiable) {
@Field(type = FieldType.Nested, includeInParent = true)
private Set<SubstationInfos> substations;

public static Set<VoltageLevel> getVoltageLevels(@NonNull Identifiable<?> identifiable) {
if (identifiable instanceof Substation) {
return ((Substation) identifiable).getVoltageLevelStream().map(vl -> VoltageLevelInfos.builder().id(vl.getId()).name(vl.getNameOrId()).build()).collect(Collectors.toSet());
return ((Substation) identifiable).getVoltageLevelStream().collect(Collectors.toSet());
} else if (identifiable instanceof VoltageLevel) {
return Set.of(VoltageLevelInfos.builder().id(identifiable.getId()).name(identifiable.getNameOrId()).build());
return Set.of((VoltageLevel) identifiable);
} else if (identifiable instanceof Switch) {
return Set.of(VoltageLevelInfos.builder().id(((Switch) identifiable).getVoltageLevel().getId()).name(((Switch) identifiable).getVoltageLevel().getNameOrId()).build());
return Set.of(((Switch) identifiable).getVoltageLevel());
} else if (identifiable instanceof Injection) {
return Set.of(VoltageLevelInfos.builder().id(((Injection<?>) identifiable).getTerminal().getVoltageLevel().getId()).name(((Injection<?>) identifiable).getTerminal().getVoltageLevel().getNameOrId()).build());
return Set.of(((Injection<?>) identifiable).getTerminal().getVoltageLevel());
} else if (identifiable instanceof Bus) {
return Set.of(VoltageLevelInfos.builder().id(((Bus) identifiable).getVoltageLevel().getId()).name(((Bus) identifiable).getVoltageLevel().getNameOrId()).build());
return Set.of(((Bus) identifiable).getVoltageLevel());
} else if (identifiable instanceof HvdcLine) {
HvdcLine hvdcLine = (HvdcLine) identifiable;
return Set.of(
VoltageLevelInfos.builder().id(hvdcLine.getConverterStation1().getTerminal().getVoltageLevel().getId()).name(hvdcLine.getConverterStation1().getTerminal().getVoltageLevel().getNameOrId()).build(),
VoltageLevelInfos.builder().id(hvdcLine.getConverterStation2().getTerminal().getVoltageLevel().getId()).name(hvdcLine.getConverterStation2().getTerminal().getVoltageLevel().getNameOrId()).build()
hvdcLine.getConverterStation1().getTerminal().getVoltageLevel(),
hvdcLine.getConverterStation2().getTerminal().getVoltageLevel()
);
} else if (identifiable instanceof Branch) {
Branch<?> branch = (Branch<?>) identifiable;
return Stream.of(
VoltageLevelInfos.builder().id(branch.getTerminal1().getVoltageLevel().getId()).name(branch.getTerminal1().getVoltageLevel().getNameOrId()).build(),
VoltageLevelInfos.builder().id(branch.getTerminal2().getVoltageLevel().getId()).name(branch.getTerminal2().getVoltageLevel().getNameOrId()).build()
)
.collect(Collectors.toSet());
return Set.of(
branch.getTerminal1().getVoltageLevel(),
branch.getTerminal2().getVoltageLevel()
);
} else if (identifiable instanceof ThreeWindingsTransformer) {
ThreeWindingsTransformer w3t = (ThreeWindingsTransformer) identifiable;
return Stream.of(
VoltageLevelInfos.builder().id(w3t.getTerminal(ThreeWindingsTransformer.Side.ONE).getVoltageLevel().getId()).name(w3t.getTerminal(ThreeWindingsTransformer.Side.ONE).getVoltageLevel().getNameOrId()).build(),
VoltageLevelInfos.builder().id(w3t.getTerminal(ThreeWindingsTransformer.Side.TWO).getVoltageLevel().getId()).name(w3t.getTerminal(ThreeWindingsTransformer.Side.TWO).getVoltageLevel().getNameOrId()).build(),
VoltageLevelInfos.builder().id(w3t.getTerminal(ThreeWindingsTransformer.Side.THREE).getVoltageLevel().getId()).name(w3t.getTerminal(ThreeWindingsTransformer.Side.THREE).getVoltageLevel().getNameOrId()).build()
)
.collect(Collectors.toSet());
return Set.of(
w3t.getTerminal(ThreeWindingsTransformer.Side.ONE).getVoltageLevel(),
w3t.getTerminal(ThreeWindingsTransformer.Side.TWO).getVoltageLevel(),
w3t.getTerminal(ThreeWindingsTransformer.Side.THREE).getVoltageLevel()
);
}

throw NetworkModificationException.createEquipmentTypeUnknown(identifiable.getClass().getSimpleName());
}

public static Set<VoltageLevelInfos> getVoltageLevelsInfos(@NonNull Identifiable<?> identifiable) {

return getVoltageLevels(identifiable).stream()
.map(vl -> VoltageLevelInfos.builder().id(vl.getId()).name(vl.getNameOrId()).build())
.collect(Collectors.toSet());
}

public static Set<SubstationInfos> getSubstationsInfos(@NonNull Identifiable<?> identifiable) {
return getVoltageLevels(identifiable).stream()
.map(vl -> SubstationInfos.builder()
.id(vl.getSubstation().map(Substation::getId).orElse(null))
.name(vl.getSubstation().map(Substation::getNameOrId).orElse(null)).build())
.collect(Collectors.toSet());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ public void onCreation(Identifiable identifiable) {
.id(identifiable.getId())
.name(identifiable.getNameOrId())
.type(identifiable.getType().name())
.voltageLevels(EquipmentInfos.getVoltageLevels(identifiable))
.voltageLevels(EquipmentInfos.getVoltageLevelsInfos(identifiable))
.build());
networkImpacts.add(
SimpleElementImpact.builder()
Expand Down
Loading

0 comments on commit 62dacb2

Please sign in to comment.