Skip to content

Commit 6670f0f

Browse files
Fix mappers methods visibility & use switch pattern (#268)
* method & mappers visibility + fn static * Sonar: `switch` pattern, coverage, and issue
1 parent 0742433 commit 6670f0f

21 files changed

+287
-217
lines changed

pom.xml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,14 @@
8080

8181
<dependencyManagement>
8282
<dependencies>
83-
83+
<!-- project specific dependencies (must be before to have priority during resolution) -->
84+
<dependency><!--TODO remove when springboot version will be updated-->
85+
<groupId>org.junit</groupId>
86+
<artifactId>junit-bom</artifactId>
87+
<version>5.13.4</version>
88+
<type>pom</type>
89+
<scope>import</scope>
90+
</dependency>
8491

8592
<!-- imports -->
8693
<dependency>
@@ -90,8 +97,6 @@
9097
<type>pom</type>
9198
<scope>import</scope>
9299
</dependency>
93-
94-
<!-- project specific dependencies -->
95100
</dependencies>
96101
</dependencyManagement>
97102

src/main/java/org/gridsuite/network/map/NetworkMapService.java

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import com.powsybl.commons.PowsyblException;
1010
import com.powsybl.iidm.network.*;
11+
import com.powsybl.iidm.network.HvdcConverterStation.HvdcType;
1112
import com.powsybl.network.store.client.NetworkStoreService;
1213
import com.powsybl.network.store.client.PreloadingStrategy;
1314
import org.gridsuite.network.map.dto.*;
@@ -18,6 +19,7 @@
1819
import org.springframework.context.annotation.ComponentScan;
1920
import org.springframework.http.HttpStatus;
2021
import org.springframework.lang.NonNull;
22+
import org.springframework.lang.Nullable;
2123
import org.springframework.stereotype.Service;
2224
import org.springframework.web.server.ResponseStatusException;
2325

@@ -52,7 +54,7 @@ private static PreloadingStrategy getPreloadingStrategy(@NonNull List<String> su
5254
return substationsIds.isEmpty() ? PreloadingStrategy.COLLECTION : PreloadingStrategy.NONE;
5355
}
5456

55-
public List<String> getSubstationsIds(UUID networkUuid, String variantId, List<Double> nominalVoltages) {
57+
private List<String> getSubstationsIds(UUID networkUuid, String variantId, List<Double> nominalVoltages) {
5658
Network network = getNetwork(networkUuid, PreloadingStrategy.COLLECTION, variantId);
5759
return network.getSubstationStream()
5860
.filter(substation -> nominalVoltages == null ||
@@ -129,7 +131,7 @@ public List<String> getVoltageLevelBusbarSectionsIds(UUID networkUuid, String vo
129131
.map(BusbarSection::getId).collect(Collectors.toList());
130132
}
131133

132-
private List<String> getHvdcLinesIdsByHvdcType(UUID networkUuid, String variantId, @NonNull List<String> substationsIds, List<Double> nominalVoltages, HvdcConverterStation.HvdcType type) {
134+
private List<String> getHvdcLinesIdsByHvdcType(UUID networkUuid, String variantId, @NonNull List<String> substationsIds, List<Double> nominalVoltages, HvdcType type) {
133135
Network network = getNetwork(networkUuid, getPreloadingStrategy(substationsIds), variantId);
134136
Stream<HvdcLine> hvdcLineStream = (substationsIds.isEmpty() && nominalVoltages == null)
135137
? network.getHvdcLineStream()
@@ -149,11 +151,11 @@ private List<String> getHvdcLinesIds(UUID networkUuid, String variantId, @NonNul
149151
}
150152

151153
private List<String> getHvdcLinesLccIds(UUID networkUuid, String variantId, @NonNull List<String> substationsIds, List<Double> nominalVoltages) {
152-
return getHvdcLinesIdsByHvdcType(networkUuid, variantId, substationsIds, nominalVoltages, HvdcConverterStation.HvdcType.LCC);
154+
return getHvdcLinesIdsByHvdcType(networkUuid, variantId, substationsIds, nominalVoltages, HvdcType.LCC);
153155
}
154156

155157
private List<String> getHvdcLinesVscIds(UUID networkUuid, String variantId, @NonNull List<String> substationsIds, List<Double> nominalVoltages) {
156-
return getHvdcLinesIdsByHvdcType(networkUuid, variantId, substationsIds, nominalVoltages, HvdcConverterStation.HvdcType.VSC);
158+
return getHvdcLinesIdsByHvdcType(networkUuid, variantId, substationsIds, nominalVoltages, HvdcType.VSC);
157159
}
158160

159161
private List<String> getTieLinesIds(UUID networkUuid, String variantId, @NonNull List<String> substationsIds, List<Double> nominalVoltages) {
@@ -172,7 +174,7 @@ private List<String> getTieLinesIds(UUID networkUuid, String variantId, @NonNull
172174
}
173175
}
174176

175-
private List<ElementInfos> getSubstationsInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
177+
private static List<ElementInfos> getSubstationsInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
176178
Stream<Substation> substations = substationsId.isEmpty() ? network.getSubstationStream() : substationsId.stream().map(network::getSubstation);
177179
return substations
178180
.filter(substation -> nominalVoltages == null ||
@@ -181,13 +183,13 @@ private List<ElementInfos> getSubstationsInfos(Network network, @NonNull List<St
181183
.toList();
182184
}
183185

184-
private List<ElementInfos> getVoltageLevelsInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
186+
private static List<ElementInfos> getVoltageLevelsInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
185187
return getVoltageLevelStream(network, substationsId, nominalVoltages)
186188
.map(c -> ElementType.VOLTAGE_LEVEL.getInfosGetter().apply(c, infoTypeParameters))
187189
.toList();
188190
}
189191

190-
private List<ElementInfos> getHvdcLinesInfosByHvdcType(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages, HvdcConverterStation.HvdcType type) {
192+
private static List<ElementInfos> getHvdcLinesInfosByHvdcType(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages, HvdcType type) {
191193
Stream<HvdcLine> hvdcLineStream = substationsId.isEmpty()
192194
? network.getHvdcLineStream()
193195
: substationsId.stream()
@@ -204,26 +206,29 @@ private List<ElementInfos> getHvdcLinesInfosByHvdcType(Network network, @NonNull
204206
return hvdcLineStream.map(c -> getElementTypeByHvdcType(type).getInfosGetter().apply(c, infoTypeParameters)).toList();
205207
}
206208

207-
private ElementType getElementTypeByHvdcType(HvdcConverterStation.HvdcType type) {
208-
if (type == HvdcConverterStation.HvdcType.LCC) {
209+
@SuppressWarnings({
210+
"java:S6880", // can't use switch-case for an enum value that can be null because java desugar it with `switch(enum.ordinal())`
211+
})
212+
private static ElementType getElementTypeByHvdcType(@Nullable final HvdcType type) {
213+
if (type == HvdcType.LCC) {
209214
return ElementType.HVDC_LINE_LCC;
210-
} else if (type == HvdcConverterStation.HvdcType.VSC) {
215+
} else if (type == HvdcType.VSC) {
211216
return ElementType.HVDC_LINE_VSC;
212217
} else {
213218
return ElementType.HVDC_LINE;
214219
}
215220
}
216221

217-
private List<ElementInfos> getHvdcLinesInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
222+
private static List<ElementInfos> getHvdcLinesInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
218223
return getHvdcLinesInfosByHvdcType(network, substationsId, infoTypeParameters, nominalVoltages, null);
219224
}
220225

221-
private List<ElementInfos> getHvdcLinesLccInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
222-
return getHvdcLinesInfosByHvdcType(network, substationsId, infoTypeParameters, nominalVoltages, HvdcConverterStation.HvdcType.LCC);
226+
private static List<ElementInfos> getHvdcLinesLccInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
227+
return getHvdcLinesInfosByHvdcType(network, substationsId, infoTypeParameters, nominalVoltages, HvdcType.LCC);
223228
}
224229

225-
private List<ElementInfos> getHvdcLinesVscInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
226-
return getHvdcLinesInfosByHvdcType(network, substationsId, infoTypeParameters, nominalVoltages, HvdcConverterStation.HvdcType.VSC);
230+
private static List<ElementInfos> getHvdcLinesVscInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
231+
return getHvdcLinesInfosByHvdcType(network, substationsId, infoTypeParameters, nominalVoltages, HvdcType.VSC);
227232
}
228233

229234
private List<ElementInfos> getTieLinesInfos(Network network, @NonNull List<String> substationsId, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
@@ -254,9 +259,9 @@ private List<ElementInfos> getBusesInfos(Network network, @NonNull List<String>
254259
.toList();
255260
}
256261

257-
private List<ElementInfos> getElementsInfos(Network network, @NonNull List<String> substationsIds, ElementType elementType, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
258-
Class<? extends Connectable> elementClass = (Class<? extends Connectable>) elementType.getElementClass();
259-
Stream<? extends Connectable> connectables = substationsIds.isEmpty() ?
262+
private static List<ElementInfos> getElementsInfos(Network network, @NonNull List<String> substationsIds, ElementType elementType, InfoTypeParameters infoTypeParameters, List<Double> nominalVoltages) {
263+
Class<? extends Connectable<?>> elementClass = (Class<? extends Connectable<?>>) elementType.getElementClass();
264+
Stream<? extends Connectable<?>> connectables = substationsIds.isEmpty() ?
260265
getConnectableStream(network, elementType) :
261266
substationsIds.stream()
262267
.flatMap(substationId -> network.getSubstation(substationId).getVoltageLevelStream())
@@ -342,15 +347,15 @@ private List<String> getConnectablesIds(UUID networkUuid, String variantId, @Non
342347
}
343348
}
344349

345-
private Stream<VoltageLevel> getVoltageLevelStream(Network network, @NonNull List<String> substationsIds, List<Double> nominalVoltages) {
350+
private static Stream<VoltageLevel> getVoltageLevelStream(Network network, @NonNull List<String> substationsIds, List<Double> nominalVoltages) {
346351
Stream<VoltageLevel> voltageLevelStream =
347352
substationsIds.isEmpty() ?
348353
network.getVoltageLevelStream() :
349354
substationsIds.stream().flatMap(substationId -> network.getSubstation(substationId).getVoltageLevelStream());
350355
return voltageLevelStream.filter(voltageLevel -> nominalVoltages == null || nominalVoltages.contains(voltageLevel.getNominalV()));
351356
}
352357

353-
public Stream<? extends Connectable> getConnectableStream(Network network, ElementType elementType) {
358+
private static Stream<? extends Connectable<?>> getConnectableStream(Network network, ElementType elementType) {
354359
return switch (elementType) {
355360
case BUSBAR_SECTION, BUS -> network.getBusbarSectionStream();
356361
case GENERATOR -> network.getGeneratorStream();

src/main/java/org/gridsuite/network/map/dto/definition/voltagelevel/VoltageLevelFormInfos.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,5 @@ public class VoltageLevelFormInfos extends ElementInfosWithProperties {
5555
private Boolean isRetrievedBusbarSections;
5656

5757
@JsonInclude(JsonInclude.Include.NON_NULL)
58-
Map<String, List<String>> busBarSectionInfos;
59-
58+
private Map<String, List<String>> busBarSectionInfos;
6059
}

src/main/java/org/gridsuite/network/map/dto/mapper/BatteryInfosMapper.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,15 @@ private BatteryInfosMapper() {
3232
}
3333

3434
public static ElementInfos toData(Identifiable<?> identifiable, InfoTypeParameters infoTypeParameters) {
35-
switch (infoTypeParameters.getInfoType()) {
36-
case TAB:
37-
return toTabInfos(identifiable);
38-
case FORM:
39-
return toFormInfos(identifiable);
40-
case LIST:
41-
return ElementInfosMapper.toInfosWithType(identifiable);
42-
default:
43-
throw new UnsupportedOperationException("TODO");
44-
}
35+
return switch (infoTypeParameters.getInfoType()) {
36+
case TAB -> toTabInfos(identifiable);
37+
case FORM -> toFormInfos(identifiable);
38+
case LIST -> ElementInfosMapper.toInfosWithType(identifiable);
39+
default -> throw new UnsupportedOperationException("TODO");
40+
};
4541
}
4642

47-
protected static List<ReactiveCapabilityCurveMapData> getReactiveCapabilityCurvePoints(Collection<ReactiveCapabilityCurve.Point> points) {
43+
private static List<ReactiveCapabilityCurveMapData> getReactiveCapabilityCurvePoints(Collection<ReactiveCapabilityCurve.Point> points) {
4844
return points.stream()
4945
.map(point -> ReactiveCapabilityCurveMapData.builder()
5046
.p(point.getP())

src/main/java/org/gridsuite/network/map/dto/mapper/BusBarSectionInfosMapper.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
*/
77
package org.gridsuite.network.map.dto.mapper;
88

9-
import com.powsybl.iidm.network.*;
9+
import com.powsybl.iidm.network.BusbarSection;
10+
import com.powsybl.iidm.network.Identifiable;
11+
import com.powsybl.iidm.network.Terminal;
1012
import com.powsybl.iidm.network.extensions.BusbarSectionPosition;
1113
import com.powsybl.iidm.network.extensions.Measurement;
1214
import org.gridsuite.network.map.dto.ElementInfos;
@@ -27,21 +29,16 @@ private BusBarSectionInfosMapper() {
2729
}
2830

2931
public static ElementInfos toData(Identifiable<?> identifiable, InfoTypeParameters infoTypeParameters) {
30-
switch (infoTypeParameters.getInfoType()) {
31-
case TAB:
32-
return toTabInfos(identifiable);
33-
case FORM:
34-
return toFormInfos(identifiable);
35-
case LIST:
36-
return ElementInfosMapper.toListInfos(identifiable);
37-
case OPERATING_STATUS:
38-
return ElementInfosMapper.toInfosWithOperatingStatus(identifiable);
39-
default:
40-
throw new UnsupportedOperationException("TODO");
41-
}
32+
return switch (infoTypeParameters.getInfoType()) {
33+
case TAB -> toTabInfos(identifiable);
34+
case FORM -> toFormInfos(identifiable);
35+
case LIST -> ElementInfosMapper.toListInfos(identifiable);
36+
case OPERATING_STATUS -> ElementInfosMapper.toInfosWithOperatingStatus(identifiable);
37+
default -> throw new UnsupportedOperationException("TODO");
38+
};
4239
}
4340

44-
public static BusBarSectionFormInfos toFormInfos(Identifiable<?> identifiable) {
41+
private static BusBarSectionFormInfos toFormInfos(Identifiable<?> identifiable) {
4542
BusbarSection busbarSection = (BusbarSection) identifiable;
4643
BusBarSectionFormInfos.BusBarSectionFormInfosBuilder<?, ?> builder = BusBarSectionFormInfos.builder().name(busbarSection.getOptionalName().orElse(null)).id(busbarSection.getId());
4744
var busbarSectionPosition = busbarSection.getExtension(BusbarSectionPosition.class);
@@ -51,7 +48,7 @@ public static BusBarSectionFormInfos toFormInfos(Identifiable<?> identifiable) {
5148
return builder.build();
5249
}
5350

54-
public static BusBarSectionTabInfos toTabInfos(Identifiable<?> identifiable) {
51+
private static BusBarSectionTabInfos toTabInfos(Identifiable<?> identifiable) {
5552
BusbarSection busbarSection = (BusbarSection) identifiable;
5653
Terminal terminal = busbarSection.getTerminal();
5754
return BusBarSectionTabInfos.builder()

src/main/java/org/gridsuite/network/map/dto/mapper/BusInfosMapper.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,14 @@ private BusInfosMapper() {
2525
}
2626

2727
public static ElementInfos toData(Identifiable<?> identifiable, InfoTypeParameters infoTypeParameters) {
28-
switch (infoTypeParameters.getInfoType()) {
29-
case LIST:
30-
return ElementInfosMapper.toListInfos(identifiable);
31-
case TAB:
32-
return toTabInfos(identifiable);
33-
default:
34-
throw new UnsupportedOperationException("TODO");
35-
}
28+
return switch (infoTypeParameters.getInfoType()) {
29+
case LIST -> ElementInfosMapper.toListInfos(identifiable);
30+
case TAB -> toTabInfos(identifiable);
31+
default -> throw new UnsupportedOperationException("TODO");
32+
};
3633
}
3734

38-
public static BusTabInfos toTabInfos(Identifiable<?> identifiable) {
35+
private static BusTabInfos toTabInfos(Identifiable<?> identifiable) {
3936
Bus bus = (Bus) identifiable;
4037
BusTabInfos.BusTabInfosBuilder<?, ?> builder = BusTabInfos.builder().id(bus.getId())
4138
.angle(bus.getAngle())

src/main/java/org/gridsuite/network/map/dto/mapper/DanglingLineInfosMapper.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,11 @@ private DanglingLineInfosMapper() {
2525
}
2626

2727
public static ElementInfos toData(Identifiable<?> identifiable, InfoTypeParameters infoTypeParameters) {
28-
switch (infoTypeParameters.getInfoType()) {
29-
case TAB:
30-
return toTabInfos(identifiable);
31-
case LIST:
32-
return ElementInfosMapper.toInfosWithType(identifiable);
33-
default:
34-
throw new UnsupportedOperationException("TODO");
35-
}
28+
return switch (infoTypeParameters.getInfoType()) {
29+
case TAB -> toTabInfos(identifiable);
30+
case LIST -> ElementInfosMapper.toInfosWithType(identifiable);
31+
default -> throw new UnsupportedOperationException("TODO");
32+
};
3633
}
3734

3835
private static DanglingLineTabInfos toTabInfos(Identifiable<?> identifiable) {

src/main/java/org/gridsuite/network/map/dto/mapper/GeneratorInfosMapper.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,12 @@ private GeneratorInfosMapper() {
3333
}
3434

3535
public static ElementInfos toData(Identifiable<?> identifiable, InfoTypeParameters infoTypeParameters) {
36-
switch (infoTypeParameters.getInfoType()) {
37-
case TAB:
38-
return toTabInfos(identifiable);
39-
case FORM:
40-
return toFormInfos(identifiable);
41-
case LIST:
42-
return ElementInfosMapper.toInfosWithType(identifiable);
43-
default:
44-
throw new UnsupportedOperationException("TODO");
45-
}
36+
return switch (infoTypeParameters.getInfoType()) {
37+
case TAB -> toTabInfos(identifiable);
38+
case FORM -> toFormInfos(identifiable);
39+
case LIST -> ElementInfosMapper.toInfosWithType(identifiable);
40+
default -> throw new UnsupportedOperationException("TODO");
41+
};
4642
}
4743

4844
private static List<ReactiveCapabilityCurveMapData> getReactiveCapabilityCurvePoints(Collection<ReactiveCapabilityCurve.Point> points) {

0 commit comments

Comments
 (0)