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 @@ -42,10 +42,10 @@
</iidm:twoWindingsTransformer>
</iidm:substation>
<iidm:tieLine id="NHV1_NHV2_2" danglingLineId1="NHV1_XNODE2" danglingLineId2="XNODE2_NHV2"/>
<iidm:extension id="XNODE1_NHV2">
<cdlbn:cgmesDanglingLineBoundaryNode isHvdc="false"/>
</iidm:extension>
<iidm:extension id="NHV1_XNODE1">
<cdlbn:cgmesDanglingLineBoundaryNode isHvdc="false" lineEnergyIdentificationCodeEic="EIC_CODE"/>
</iidm:extension>
<iidm:extension id="XNODE1_NHV2">
<cdlbn:cgmesDanglingLineBoundaryNode isHvdc="false"/>
</iidm:extension>
</iidm:network>
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@
</iidm:substation>
<iidm:tieLine id="NHV1_NHV2_1" danglingLineId1="NHV1_XNODE1" danglingLineId2="XNODE1_NHV2"/>
<iidm:tieLine id="NHV1_NHV2_2" danglingLineId1="NHV1_XNODE2" danglingLineId2="XNODE2_NHV2"/>
<iidm:extension id="NHV1_NHV2_2">
<clbn:cgmesLineBoundaryNode isHvdc="true"/>
</iidm:extension>
<iidm:extension id="NHV1_NHV2_1">
<clbn:cgmesLineBoundaryNode isHvdc="true" lineEnergyIdentificationCodeEic="EIC_CODE"/>
</iidm:extension>
<iidm:extension id="NHV1_NHV2_2">
<clbn:cgmesLineBoundaryNode isHvdc="true"/>
</iidm:extension>
</iidm:network>
924 changes: 462 additions & 462 deletions ieee-cdf/ieee-cdf-converter/src/test/resources/ieee300cdf.xiidm

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ default Network getParentNetwork() {
*/
String getId();

/**
* Get the sort index of the object.
*/
long getSortIndex();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A test should be added in the TCK to ensure that the custom IIDM implementations handle it correctly.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


/**
* Get the aliases of the object.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,5 +127,10 @@ public <E extends Extension<MaliciousIdentifiable>> boolean removeExtension(Clas
public <E extends Extension<MaliciousIdentifiable>> Collection<E> getExtensions() {
return Collections.emptyList();
}

@Override
public long getSortIndex() {
return 1L;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
/**
* @author Geoffroy Jamgotchian {@literal <geoffroy.jamgotchian at rte-france.com>}
*/
abstract class AbstractIdentifiable<I extends Identifiable<I>> extends AbstractExtendable<I> implements Identifiable<I>, Validable, MultiVariantObject {
public abstract class AbstractIdentifiable<I extends Identifiable<I>> extends AbstractExtendable<I> implements Identifiable<I>, Validable, MultiVariantObject {

protected String id;

Expand All @@ -33,6 +33,7 @@ abstract class AbstractIdentifiable<I extends Identifiable<I>> extends AbstractE

private final Set<String> aliasesWithoutType = new HashSet<>();
private final Map<String, String> aliasesByType = new HashMap<>();
private long sortIndex;

AbstractIdentifiable(String id, String name) {
this.id = id;
Expand Down Expand Up @@ -219,6 +220,15 @@ public Set<String> getPropertyNames() {
return properties.getPropertyNames();
}

@Override
public long getSortIndex() {
return sortIndex;
}

public void setSortIndex(long sortIndex) {
this.sortIndex = sortIndex;
}

@Override
public String toString() {
return id;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class NetworkIndex {

private final Map<String, Identifiable<?>> objectsById = new HashMap<>();
private final Map<String, String> idByAlias = new HashMap<>();
private long sortIndex = 0;

private final Map<Class<? extends Identifiable>, Set<Identifiable<?>>> objectsByClass = new HashMap<>();

Expand All @@ -43,6 +44,7 @@ void checkAndAdd(Identifiable<?> obj) {
+ ") '" + obj.getId() + "' already exists");
}
objectsById.put(obj.getId(), obj);
((AbstractIdentifiable<?>) obj).setSortIndex(sortIndex++);
obj.getAliases().forEach(alias -> addAlias(obj, alias));

Set<Identifiable<?>> all = objectsByClass.computeIfAbsent(obj.getClass(), k -> new LinkedHashSet<>());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
import com.powsybl.commons.PowsyblException;
import com.powsybl.commons.extensions.AbstractExtendable;
import com.powsybl.commons.extensions.AbstractExtension;
import com.powsybl.iidm.network.*;
import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory;
Expand All @@ -32,7 +31,7 @@
*/
class VariantManagerImplTest {

private static final class IdentifiableMock extends AbstractExtendable<IdentifiableMock> implements Identifiable<IdentifiableMock>, MultiVariantObject {
private static final class IdentifiableMock extends AbstractIdentifiable<IdentifiableMock> implements Identifiable<IdentifiableMock>, MultiVariantObject {

private final String id;

Expand All @@ -45,6 +44,7 @@ private static final class IdentifiableMock extends AbstractExtendable<Identifia
private int reducedCount = 0;

private IdentifiableMock(String id) {
super(id, "");
this.id = id;
}

Expand All @@ -69,7 +69,7 @@ public Set<String> getAliases() {
}

@Override
public Network getNetwork() {
public NetworkImpl getNetwork() {
return null;
}

Expand Down Expand Up @@ -142,6 +142,11 @@ public void allocateVariantArrayElement(int[] indexes, int sourceIndex) {
public IdentifiableType getType() {
return null;
}

@Override
protected String getTypeDescription() {
throw new UnsupportedOperationException("Unimplemented method 'getTypeDescription'");
}
}

private static final class LoadExtension extends AbstractExtension<Load> implements MultiVariantObject {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/**
* Copyright (c) 2026, 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/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.iidm.network.impl.tck;

import com.powsybl.iidm.network.tck.AbstractIdentifiableTest;

/**
* @author Alice Caron {@literal <alice.caron at rte-france.com>}
*/
class IdentifiableTest extends AbstractIdentifiableTest { }
Original file line number Diff line number Diff line change
Expand Up @@ -54,40 +54,40 @@
</iidm:generator>
</iidm:voltageLevel>
</iidm:substation>
<iidm:extension id="VL1_3_4">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="VL1_1_4">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="VL1_2_4">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="BBS22">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="2"/>
<iidm:extension id="BBS11">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="1"/>
</iidm:extension>
<iidm:extension id="BBS21">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="1"/>
</iidm:extension>
<iidm:extension id="BBS23">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="3"/>
</iidm:extension>
<iidm:extension id="BBS31">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="1"/>
</iidm:extension>
<iidm:extension id="BBS11">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="1"/>
<iidm:extension id="BBS12">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS33">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="3"/>
<iidm:extension id="BBS22">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS32">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS13">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="3"/>
</iidm:extension>
<iidm:extension id="BBS12">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="2"/>
<iidm:extension id="BBS23">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="3"/>
</iidm:extension>
<iidm:extension id="BBS33">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="3"/>
</iidm:extension>
<iidm:extension id="VL1_1_4">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="VL1_2_4">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="VL1_3_4">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="4"/>
</iidm:extension>
</iidm:network>
</iidm:network>
Original file line number Diff line number Diff line change
Expand Up @@ -60,40 +60,40 @@
</iidm:generator>
</iidm:voltageLevel>
</iidm:substation>
<iidm:extension id="VL1_2_1">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="1"/>
</iidm:extension>
<iidm:extension id="BBS11">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS13">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="4"/>
<iidm:extension id="BBS21">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS31">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS12">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="3"/>
</iidm:extension>
<iidm:extension id="VL1_3_1">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="1"/>
</iidm:extension>
<iidm:extension id="BBS22">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="3"/>
</iidm:extension>
<iidm:extension id="BBS21">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="2"/>
<iidm:extension id="BBS32">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="3"/>
</iidm:extension>
<iidm:extension id="BBS13">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="BBS23">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="BBS31">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS33">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="BBS32">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="3"/>
</iidm:extension>
<iidm:extension id="VL1_1_1">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="1"/>
</iidm:extension>
</iidm:network>
<iidm:extension id="VL1_2_1">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="1"/>
</iidm:extension>
<iidm:extension id="VL1_3_1">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="1"/>
</iidm:extension>
</iidm:network>
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
<iidm:busbarSection id="BBS33" node="8"/>
<iidm:busbarSection id="VL1_1_3" name="52" node="52"/>
<iidm:switch id="D_BBS11_BBS12" kind="DISCONNECTOR" retained="false" open="false" node1="0" node2="3"/>
<iidm:switch id="VL1_DISCONNECTOR_3_52" kind="DISCONNECTOR" retained="false" open="false" node1="3" node2="52"/>
<iidm:switch id="VL1_DISCONNECTOR_52_6" kind="DISCONNECTOR" retained="false" open="false" node1="52" node2="6"/>
<iidm:switch id="D_BBS21_BBS22" kind="DISCONNECTOR" retained="false" open="false" node1="1" node2="4"/>
<iidm:switch id="D_BBS22_BBS23_1" kind="DISCONNECTOR" retained="false" open="false" node1="4" node2="22"/>
<iidm:switch id="B_BBS22_BBS23" kind="BREAKER" retained="false" open="false" node1="22" node2="23"/>
Expand All @@ -36,6 +34,8 @@
<iidm:switch id="D_23_GEN_3" kind="DISCONNECTOR" retained="false" open="false" node1="7" node2="50"/>
<iidm:switch id="D_33_GEN_3" kind="DISCONNECTOR" retained="false" open="false" node1="8" node2="50"/>
<iidm:switch id="B_GEN_3" kind="BREAKER" retained="false" open="false" node1="50" node2="51"/>
<iidm:switch id="VL1_DISCONNECTOR_3_52" kind="DISCONNECTOR" retained="false" open="false" node1="3" node2="52"/>
<iidm:switch id="VL1_DISCONNECTOR_52_6" kind="DISCONNECTOR" retained="false" open="false" node1="52" node2="6"/>
</iidm:nodeBreakerTopology>
<iidm:generator id="GEN_1" energySource="OTHER" minP="0.0" maxP="100.0" voltageRegulatorOn="true" targetP="100.0" targetV="400.0" node="31">
<iidm:minMaxReactiveLimits minQ="-1.7976931348623157E308" maxQ="1.7976931348623157E308"/>
Expand All @@ -48,34 +48,34 @@
</iidm:generator>
</iidm:voltageLevel>
</iidm:substation>
<iidm:extension id="VL1_1_3">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="3"/>
</iidm:extension>
<iidm:extension id="BBS22">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="2"/>
<iidm:extension id="BBS11">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="1"/>
</iidm:extension>
<iidm:extension id="BBS21">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="1"/>
</iidm:extension>
<iidm:extension id="BBS23">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="BBS31">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="1"/>
</iidm:extension>
<iidm:extension id="BBS11">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="1"/>
<iidm:extension id="BBS12">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS33">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="4"/>
<iidm:extension id="BBS22">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS32">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="2"/>
</iidm:extension>
<iidm:extension id="BBS13">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="BBS12">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="2"/>
<iidm:extension id="BBS23">
<bbsp:busbarSectionPosition busbarIndex="2" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="BBS33">
<bbsp:busbarSectionPosition busbarIndex="3" sectionIndex="4"/>
</iidm:extension>
<iidm:extension id="VL1_1_3">
<bbsp:busbarSectionPosition busbarIndex="1" sectionIndex="3"/>
</iidm:extension>
</iidm:network>
</iidm:network>
Loading