7
7
package org .gridsuite .network .map .dto .mapper ;
8
8
9
9
import com .powsybl .iidm .network .*;
10
- import com .powsybl .iidm .network .extensions .Measurement ;
10
+ import com .powsybl .iidm .network .extensions .CoordinatedReactiveControl ;
11
+ import com .powsybl .iidm .network .extensions .GeneratorShortCircuit ;
12
+ import com .powsybl .iidm .network .extensions .GeneratorStartup ;
13
+ import com .powsybl .iidm .network .extensions .Measurement .Type ;
11
14
import com .powsybl .network .store .iidm .impl .MinMaxReactiveLimitsImpl ;
12
15
import org .gridsuite .network .map .dto .ElementInfos ;
13
16
import org .gridsuite .network .map .dto .InfoTypeParameters ;
17
+ import org .gridsuite .network .map .dto .common .MinMaxReactiveLimitsMapData ;
18
+ import org .gridsuite .network .map .dto .common .ReactiveCapabilityCurveMapData ;
19
+ import org .gridsuite .network .map .dto .definition .extension .CoordinatedReactiveControlInfos ;
20
+ import org .gridsuite .network .map .dto .definition .extension .GeneratorShortCircuitInfos ;
21
+ import org .gridsuite .network .map .dto .definition .extension .GeneratorStartupInfos ;
14
22
import org .gridsuite .network .map .dto .definition .generator .GeneratorFormInfos ;
15
23
import org .gridsuite .network .map .dto .definition .generator .GeneratorTabInfos ;
16
24
import org .gridsuite .network .map .dto .utils .ElementUtils ;
17
- import org .gridsuite .network .map .dto .common . MinMaxReactiveLimitsMapData ;
18
- import org .gridsuite . network . map . dto . common . ReactiveCapabilityCurveMapData ;
25
+ import org .gridsuite .network .map .dto .utils . ExtensionUtils ;
26
+ import org .springframework . lang . NonNull ;
19
27
20
28
import java .util .Collection ;
21
29
import java .util .List ;
30
+ import java .util .Optional ;
22
31
import java .util .stream .Collectors ;
23
32
24
33
import static org .gridsuite .network .map .dto .utils .ElementUtils .*;
@@ -73,7 +82,7 @@ private static GeneratorTabInfos toTabInfos(Identifiable<?> identifiable) {
73
82
.properties (getProperties (generator ))
74
83
.q (nullIfNan (terminal .getQ ()));
75
84
76
- builder .activePowerControl (toActivePowerControl (generator ))
85
+ builder .activePowerControl (ExtensionUtils . toActivePowerControl (generator ))
77
86
.coordinatedReactiveControl (toCoordinatedReactiveControl (generator ))
78
87
.generatorShortCircuit (toGeneratorShortCircuit (generator ))
79
88
.generatorStartup (toGeneratorStartup (generator ));
@@ -101,10 +110,10 @@ private static GeneratorTabInfos toTabInfos(Identifiable<?> identifiable) {
101
110
}
102
111
}
103
112
104
- builder .connectablePosition (toMapConnectablePosition (generator , 0 ));
113
+ builder .connectablePosition (ExtensionUtils . toMapConnectablePosition (generator , 0 ));
105
114
106
- builder .measurementP (toMeasurement (generator , Measurement . Type .ACTIVE_POWER , 0 ))
107
- .measurementQ (toMeasurement (generator , Measurement . Type .REACTIVE_POWER , 0 ));
115
+ builder .measurementP (ExtensionUtils . toMeasurement (generator , Type .ACTIVE_POWER , 0 ))
116
+ .measurementQ (ExtensionUtils . toMeasurement (generator , Type .REACTIVE_POWER , 0 ));
108
117
109
118
builder .isCondenser (generator .isCondenser ());
110
119
@@ -118,8 +127,8 @@ private static GeneratorTabInfos toTabInfos(Identifiable<?> identifiable) {
118
127
builder .voltageLevelProperties (getProperties (terminal .getVoltageLevel ()));
119
128
builder .lowVoltageLimit (terminal .getVoltageLevel ().getLowVoltageLimit ());
120
129
builder .highVoltageLimit (terminal .getVoltageLevel ().getHighVoltageLimit ());
121
- builder .voltageLevelShortCircuit (toIdentifiableShortCircuit (terminal .getVoltageLevel ()));
122
- builder .injectionObservability (toInjectionObservability (generator ));
130
+ builder .voltageLevelShortCircuit (ExtensionUtils . toIdentifiableShortCircuit (terminal .getVoltageLevel ()));
131
+ builder .injectionObservability (ExtensionUtils . toInjectionObservability (generator ));
123
132
124
133
return builder .build ();
125
134
}
@@ -144,7 +153,7 @@ private static GeneratorFormInfos toFormInfos(Identifiable<?> identifiable) {
144
153
.q (nullIfNan (terminal .getQ ()))
145
154
.properties (getProperties (generator ));
146
155
builder .busOrBusbarSectionId (getBusOrBusbarSection (terminal ))
147
- .activePowerControl (toActivePowerControl (generator ));
156
+ .activePowerControl (ExtensionUtils . toActivePowerControl (generator ));
148
157
149
158
builder .generatorShortCircuit (toGeneratorShortCircuit (generator ))
150
159
.generatorStartup (toGeneratorStartup (generator ))
@@ -173,7 +182,32 @@ private static GeneratorFormInfos toFormInfos(Identifiable<?> identifiable) {
173
182
}
174
183
}
175
184
176
- builder .connectablePosition (toMapConnectablePosition (generator , 0 ));
185
+ builder .connectablePosition (ExtensionUtils . toMapConnectablePosition (generator , 0 ));
177
186
return builder .build ();
178
187
}
188
+
189
+ private static Optional <GeneratorShortCircuitInfos > toGeneratorShortCircuit (@ NonNull final Generator generator ) {
190
+ return Optional .ofNullable ((GeneratorShortCircuit ) generator .getExtension (GeneratorShortCircuit .class ))
191
+ .map (generatorShortCircuit -> GeneratorShortCircuitInfos .builder ()
192
+ .directTransX (generatorShortCircuit .getDirectTransX ())
193
+ .stepUpTransformerX (generatorShortCircuit .getStepUpTransformerX ())
194
+ .build ());
195
+ }
196
+
197
+ private static CoordinatedReactiveControlInfos toCoordinatedReactiveControl (@ NonNull final Generator generator ) {
198
+ final CoordinatedReactiveControl coordinatedReactiveControl = generator .getExtension (CoordinatedReactiveControl .class );
199
+ return CoordinatedReactiveControlInfos .builder ()
200
+ .qPercent (coordinatedReactiveControl != null ? coordinatedReactiveControl .getQPercent () : Double .NaN )
201
+ .build ();
202
+ }
203
+
204
+ private static Optional <GeneratorStartupInfos > toGeneratorStartup (@ NonNull final Generator generator ) {
205
+ return Optional .ofNullable ((GeneratorStartup ) generator .getExtension (GeneratorStartup .class ))
206
+ .map (generatorStartup -> GeneratorStartupInfos .builder ()
207
+ .plannedActivePowerSetPoint (nullIfNan (generatorStartup .getPlannedActivePowerSetpoint ()))
208
+ .marginalCost (nullIfNan (generatorStartup .getMarginalCost ()))
209
+ .plannedOutageRate (nullIfNan (generatorStartup .getPlannedOutageRate ()))
210
+ .forcedOutageRate (nullIfNan (generatorStartup .getForcedOutageRate ()))
211
+ .build ());
212
+ }
179
213
}
0 commit comments