3
3
// SPDX-License-Identifier: Apache-2.0
4
4
package org .lfenergy .compas .scl .auto .alignment .builder ;
5
5
6
- import com .powsybl .sld .model .*;
6
+ import com .powsybl .sld .library .ComponentTypeName ;
7
+ import com .powsybl .sld .model .coordinate .Direction ;
8
+ import com .powsybl .sld .model .graphs .BaseGraph ;
9
+ import com .powsybl .sld .model .graphs .NodeFactory ;
10
+ import com .powsybl .sld .model .graphs .VoltageLevelGraph ;
11
+ import com .powsybl .sld .model .graphs .VoltageLevelInfos ;
12
+ import com .powsybl .sld .model .nodes .*;
7
13
import org .lfenergy .compas .scl .auto .alignment .model .*;
8
14
9
- import java .util .HashMap ;
10
15
import java .util .Map ;
11
16
import java .util .Optional ;
12
17
import java .util .concurrent .atomic .AtomicInteger ;
@@ -15,28 +20,18 @@ public class VoltageLevelGraphBuilder extends AbstractGraphBuilder<VoltageLevelG
15
20
private final GenericVoltageLevel voltageLevel ;
16
21
private final GenericSubstation substation ;
17
22
18
- public VoltageLevelGraphBuilder (GenericVoltageLevel voltageLevel ) {
19
- this (voltageLevel , null , new HashMap <>(), true );
20
- }
21
-
22
23
public VoltageLevelGraphBuilder (GenericVoltageLevel voltageLevel ,
23
24
GenericSubstation substation ,
24
- Map <String , Node > path2Node ) {
25
- this (voltageLevel , substation , path2Node , false );
26
- }
27
-
28
- private VoltageLevelGraphBuilder (GenericVoltageLevel voltageLevel ,
29
- GenericSubstation substation ,
30
- Map <String , Node > path2Node ,
31
- boolean forVoltageLevelDiagram ) {
25
+ Map <String , Node > path2Node ,
26
+ BaseGraph parentGraph ) {
32
27
super (path2Node );
33
28
this .voltageLevel = voltageLevel ;
34
29
this .substation = substation ;
35
30
36
31
var voltageLevelInfos = new VoltageLevelInfos (voltageLevel .getFullName (),
37
32
voltageLevel .getFullName (),
38
33
voltageLevel .getVoltage ());
39
- setGraph (VoltageLevelGraph . create (voltageLevelInfos , forVoltageLevelDiagram ));
34
+ setGraph (new VoltageLevelGraph (voltageLevelInfos , parentGraph ));
40
35
41
36
createVoltageLevel ();
42
37
}
@@ -57,14 +52,14 @@ private void createVoltageLevel() {
57
52
private void processBusbarNode (GenericBay busbar ,
58
53
AtomicInteger busbarIndex ) {
59
54
busbar .getConnectivityNodes ()
60
- .forEach (connectivityNode ->
55
+ .stream ().findFirst ()
56
+ .ifPresent (connectivityNode ->
61
57
addNode (connectivityNode .getPathName (),
62
58
createBusbarNode (busbar .getFullName (), busbarIndex .getAndIncrement (), 1 )));
63
59
}
64
60
65
61
public BusNode createBusbarNode (String id , int busbarIndex , int sectionIndex ) {
66
- BusNode busNode = BusNode .create (getGraph (), id , id );
67
- getGraph ().addNode (busNode );
62
+ BusNode busNode = NodeFactory .createBusNode (getGraph (), id , id );
68
63
busNode .setBusBarIndexSectionIndex (busbarIndex , sectionIndex );
69
64
return busNode ;
70
65
}
@@ -104,16 +99,18 @@ private void processConductingEquipment(GenericConductingEquipment conductingEqu
104
99
var fullName = conductingEquipment .getFullName ();
105
100
var node = createSwitchNode (fullName );
106
101
107
- Node node1 = terminalToNode (terminals .get (0 ));
108
- Node node2 = null ;
109
- var termNb = terminals .size ();
110
- if (termNb == 1 ) {
111
- node2 = createLoad (fullName + "/Grounded" );
112
- } else if (termNb == 2 ) {
113
- node2 = terminalToNode (terminals .get (1 ));
102
+ if (!terminals .isEmpty ()) {
103
+ Node node1 = terminalToNode (terminals .get (0 ));
104
+ Node node2 = null ;
105
+ var termNb = terminals .size ();
106
+ if (termNb == 1 ) {
107
+ node2 = createLoad (fullName + "/Grounded" );
108
+ } else if (termNb == 2 ) {
109
+ node2 = terminalToNode (terminals .get (1 ));
110
+ }
111
+ connectNode (node , node1 );
112
+ connectNode (node , node2 );
114
113
}
115
- connectNode (node , node1 );
116
- connectNode (node , node2 );
117
114
}
118
115
119
116
private Node terminalToNode (GenericTerminal terminal ) {
@@ -125,45 +122,40 @@ private Node terminalToNode(GenericTerminal terminal) {
125
122
}
126
123
127
124
private SwitchNode createSwitchNode (String id ) {
128
- SwitchNode sw = new SwitchNode (id , id , SwitchNode .SwitchKind .BREAKER .name (), false ,
129
- getGraph (), SwitchNode .SwitchKind .BREAKER , false );
130
- getGraph ().addNode (sw );
131
- return sw ;
125
+ return NodeFactory .createSwitchNode (getGraph (), id , id , SwitchNode .SwitchKind .BREAKER .name (),
126
+ false , SwitchNode .SwitchKind .BREAKER , false );
132
127
}
133
128
134
129
private void connectNode (Node node1 , Node node2 ) {
135
130
getGraph ().addEdge (node1 , node2 );
136
131
}
137
132
138
133
private FictitiousNode createFictitiousNode (String id ) {
139
- InternalNode fictitiousNode = new InternalNode (id , getGraph ());
140
- getGraph ().addNode (fictitiousNode );
141
- return fictitiousNode ;
134
+ return NodeFactory .createFictitiousNode (getGraph (), id , id , id , ComponentTypeName .LINE );
142
135
}
143
136
144
137
private FeederNode createLoad (String id ) {
145
- FeederInjectionNode fn = FeederInjectionNode .createLoad (getGraph (), id , id );
138
+ FeederNode fn = NodeFactory .createLoad (getGraph (), id , id );
146
139
commonFeederSetting (fn , id , 0 , null );
147
140
return fn ;
148
141
}
149
142
150
143
public Feeder2WTLegNode createFeeder2WTLegNode (String id , FeederWithSideNode .Side side , int order ,
151
- BusCell . Direction direction ) {
152
- Feeder2WTLegNode f2WTe = Feeder2WTLegNode . create (getGraph (), id + "_" + side , id , id , side );
144
+ Direction direction ) {
145
+ Feeder2WTLegNode f2WTe = NodeFactory . createFeeder2WTLegNode (getGraph (), id + "_" + side , id , id , side );
153
146
commonFeederSetting (f2WTe , id , order , direction );
154
147
return f2WTe ;
155
148
}
156
149
157
150
public Feeder3WTLegNode createFeeder3WTLegNode (String id , FeederWithSideNode .Side side , int order ,
158
- BusCell . Direction direction ) {
159
- Feeder3WTLegNode f3WTe = Feeder3WTLegNode . createForSubstationDiagram (getGraph (), id + "_" + side , id , id , side );
151
+ Direction direction ) {
152
+ Feeder3WTLegNode f3WTe = NodeFactory . createFeeder3WTLegNodeForSubstationDiagram (getGraph (), id + "_" + side , id , id , side );
160
153
commonFeederSetting (f3WTe , id + side .getIntValue (), order , direction );
161
154
return f3WTe ;
162
155
}
163
156
164
- private void commonFeederSetting (FeederNode node , String id , int order , BusCell . Direction direction ) {
157
+ private void commonFeederSetting (FeederNode node , String id , int order , Direction direction ) {
165
158
node .setLabel (id );
166
- getGraph ().addNode (node );
167
159
168
160
if (direction != null ) {
169
161
node .setOrder (order );
0 commit comments