Skip to content

Commit 84b1e5a

Browse files
committed
terminal adder take voltagelevel topology into account to give the correct error message
Signed-off-by: Giovanni Ferrari <giovanni.ferrari@soft.it>
1 parent f4d30a7 commit 84b1e5a

File tree

7 files changed

+21
-4
lines changed

7 files changed

+21
-4
lines changed

iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/AbstractAcDcConverterAdder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public T setConnectableBus1(String connectableBus1) {
9090

9191
protected TerminalExt checkAndGetTerminal1() {
9292
return new TerminalBuilder(voltageLevel.getNetworkRef(), this, null, TerminalNumber.ONE)
93+
.setVoltageLevelTopology(voltageLevel.getTopologyKind())
9394
.setNode(node1)
9495
.setBus(bus1)
9596
.setConnectableBus(connectableBus1)
@@ -114,6 +115,7 @@ public T setConnectableBus2(String connectableBus2) {
114115
protected Optional<TerminalExt> checkAndGetTerminal2() {
115116
if (hasTwoAcTerminals()) {
116117
return Optional.of(new TerminalBuilder(voltageLevel.getNetworkRef(), this, null, TerminalNumber.TWO)
118+
.setVoltageLevelTopology(voltageLevel.getTopologyKind())
117119
.setNode(node2)
118120
.setBus(bus2)
119121
.setConnectableBus(connectableBus2)

iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/AbstractBranchAdder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public T setVoltageLevel1(String voltageLevelId1) {
5555
protected TerminalExt checkAndGetTerminal1() {
5656
VoltageLevelExt voltageLevel = checkAndGetVoltageLevel1();
5757
return new TerminalBuilder(voltageLevel.getNetworkRef(), this, ThreeSides.ONE, null)
58+
.setVoltageLevelTopology(voltageLevel.getTopologyKind())
5859
.setNode(node1)
5960
.setBus(bus1)
6061
.setConnectableBus(connectableBus1)
@@ -100,6 +101,7 @@ public T setVoltageLevel2(String voltageLevelId2) {
100101
protected TerminalExt checkAndGetTerminal2() {
101102
VoltageLevelExt voltageLevel = checkAndGetVoltageLevel2();
102103
return new TerminalBuilder(voltageLevel.getNetworkRef(), this, ThreeSides.TWO, null)
104+
.setVoltageLevelTopology(voltageLevel.getTopologyKind())
103105
.setNode(node2)
104106
.setBus(bus2)
105107
.setConnectableBus(connectableBus2)

iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/AbstractConnectable.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ protected void move(TerminalExt oldTerminal, int node, String voltageLevelId) {
148148

149149
// create the new terminal and attach it to the given voltage level and to the connectable
150150
TerminalExt terminalExt = new TerminalBuilder(voltageLevel.getNetworkRef(), this, oldTerminal.getSide(), oldTerminal.getTerminalNumber())
151+
.setVoltageLevelTopology(voltageLevel.getTopologyKind())
151152
.setNode(node)
152153
.build();
153154

@@ -170,6 +171,7 @@ protected void move(TerminalExt oldTerminal, String busId, boolean connected) {
170171

171172
// create the new terminal and attach it to the voltage level of the given bus and links it to the connectable
172173
TerminalExt terminalExt = new TerminalBuilder(((VoltageLevelExt) bus.getVoltageLevel()).getNetworkRef(), this, oldTerminal.getSide(), oldTerminal.getTerminalNumber())
174+
.setVoltageLevelTopology(((VoltageLevelExt) bus.getVoltageLevel()).getTopologyKind())
173175
.setBus(connected ? bus.getId() : null)
174176
.setConnectableBus(bus.getId())
175177
.build();

iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/AbstractInjectionAdder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ protected Ref<NetworkImpl> getNetworkRef() {
4949

5050
protected TerminalExt checkAndGetTerminal() {
5151
return new TerminalBuilder(getNetworkRef(), this, null, null)
52+
.setVoltageLevelTopology(voltageLevel.getTopologyKind())
5253
.setNode(node)
5354
.setBus(bus)
5455
.setConnectableBus(connectableBus)

iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/TerminalBuilder.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.powsybl.commons.ref.Ref;
1313
import com.powsybl.iidm.network.Validable;
1414
import com.powsybl.iidm.network.ValidationException;
15+
import com.powsybl.iidm.network.TopologyKind;
1516

1617
import java.util.Objects;
1718

@@ -29,6 +30,8 @@ class TerminalBuilder {
2930

3031
private final TerminalNumber terminalNumber;
3132

33+
private TopologyKind topologyKind;
34+
3235
private Integer node;
3336

3437
private String bus;
@@ -42,6 +45,11 @@ class TerminalBuilder {
4245
this.terminalNumber = terminalNumber;
4346
}
4447

48+
TerminalBuilder setVoltageLevelTopology(TopologyKind topologyKind) {
49+
this.topologyKind = topologyKind;
50+
return this;
51+
}
52+
4553
TerminalBuilder setBus(String bus) {
4654
this.bus = bus;
4755
return this;
@@ -65,14 +73,14 @@ TerminalExt build() {
6573
}
6674

6775
if (node == null) {
76+
if (topologyKind == TopologyKind.NODE_BREAKER) {
77+
throw new ValidationException(validable, "node is not set");
78+
}
6879
if (connectionBus == null) {
6980
throw new ValidationException(validable, "connectable bus is not set");
7081
}
71-
72-
return new BusTerminal(network, side, terminalNumber, connectionBus, bus != null);
73-
} else {
74-
return new NodeTerminal(network, side, terminalNumber, node);
7582
}
83+
return new NodeTerminal(network, side, terminalNumber, node);
7684
}
7785

7886
private String getConnectionBus() {

iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/ThreeWindingsTransformerAdderImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ protected void checkParams() {
122122
protected TerminalExt checkAndGetTerminal() {
123123
VoltageLevelExt voltageLevel = checkAndGetVoltageLevel();
124124
return new TerminalBuilder(voltageLevel.getNetworkRef(), this, side, null)
125+
.setVoltageLevelTopology(voltageLevel.getTopologyKind())
125126
.setNode(node)
126127
.setBus(bus)
127128
.setConnectableBus(connectableBus)

iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/VoltageLevelImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,7 @@ record TopologyModelInfos(TerminalExt terminal, String connectableBusId, boolean
706706

707707
// create the new terminal with new type
708708
TerminalExt newTerminalExt = new TerminalBuilder(networkRef, this, oldTerminalExt.getSide(), oldTerminalExt.getTerminalNumber())
709+
.setVoltageLevelTopology(getTopologyKind())
709710
.setBus(infos.connected ? infos.connectableBusId() : null)
710711
.setConnectableBus(infos.connectableBusId())
711712
.build();

0 commit comments

Comments
 (0)