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

reindex equipmentType to separate lcc and vsc types of Hvdcline #594

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,23 @@ public static Set<VoltageLevel> getVoltageLevels(@NonNull Identifiable<?> identi
throw NetworkModificationException.createEquipmentTypeUnknown(identifiable.getClass().getSimpleName());
}

public static String getEquipmentTypeName(@NonNull Identifiable<?> identifiable) {
return identifiable.getType() == IdentifiableType.HVDC_LINE ? getHvdcTypeName((HvdcLine) identifiable) : identifiable.getType().name();
}

/**
* @param hvdcLine The hvdc line to get hvdc type name
* @return The hvdc type name string
* @throws NetworkModificationException if converter station types don't match
*/
private static String getHvdcTypeName(HvdcLine hvdcLine) {
if (hvdcLine.getConverterStation1().getHvdcType() != hvdcLine.getConverterStation2().getHvdcType()) {
throw NetworkModificationException.createHybridHvdcUnsupported(hvdcLine.getId());
}

return String.format("%s_%s", hvdcLine.getType().name(), hvdcLine.getConverterStation1().getHvdcType().name());
}

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

return getVoltageLevels(identifiable).stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ public void onCreation(Identifiable identifiable) {
.variantId(network.getVariantManager().getWorkingVariantId())
.id(identifiable.getId())
.name(identifiable.getNameOrId())
.type(identifiable.getType().name())
.type(EquipmentInfos.getEquipmentTypeName(identifiable))
.voltageLevels(EquipmentInfos.getVoltageLevelsInfos(identifiable))
.substations(EquipmentInfos.getSubstationsInfos(identifiable))
.build());
Expand Down Expand Up @@ -231,7 +231,7 @@ private static EquipmentInfos toEquipmentInfos(Identifiable<?> identifiable, UUI
.variantId(variantId)
.id(identifiable.getId())
.name(identifiable.getNameOrId())
.type(identifiable.getType().name())
.type(EquipmentInfos.getEquipmentTypeName(identifiable))
.voltageLevels(EquipmentInfos.getVoltageLevelsInfos(identifiable))
.substations(EquipmentInfos.getSubstationsInfos(identifiable))
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@
*/
package org.gridsuite.modification.server.service;

import com.powsybl.iidm.network.Identifiable;
import com.powsybl.iidm.network.IdentifiableType;
import com.powsybl.iidm.network.Network;
import com.powsybl.iidm.network.*;
import com.powsybl.network.store.iidm.impl.NetworkFactoryImpl;
import com.powsybl.network.store.iidm.impl.NetworkImpl;
import org.gridsuite.modification.NetworkModificationException;
Expand Down Expand Up @@ -269,6 +267,14 @@ void testBadType() {
assertTrue(errorMessage.contains(String.format("The equipment type : %s is unknown", NetworkImpl.class.getSimpleName())));
}

@Test
void testUnsupportedHybridHvdc() {
Network network = NetworkCreation.create(NETWORK_UUID, true);
HvdcLine hvdcLine = network.getHvdcLine("hvdcLine");
String errorMessage = assertThrows(NetworkModificationException.class, () -> EquipmentInfos.getEquipmentTypeName(hvdcLine)).getMessage();
assertEquals(NetworkModificationException.createHybridHvdcUnsupported(hvdcLine.getId()).getMessage(), errorMessage);
}

@AfterEach
public void tearDown() {
equipmentInfosService.deleteVariants(NETWORK_UUID, List.of(VARIANT_NAME_1, VARIANT_NAME_2, VARIANT_NAME_3));
Expand Down