Skip to content

Commit a12f95c

Browse files
author
Riad Benradi
committed
Checkstyles corrections
Signed-off-by: Riad Benradi <riad.benradi_externe@rte-france.com>
1 parent 61d0dbd commit a12f95c

File tree

11 files changed

+104
-124
lines changed

11 files changed

+104
-124
lines changed

security-analysis/mixed-security-analysis/src/main/java/com/powsybl/mixed/security/analysis/MixedSecurityAnalysis.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@ public MixedSecurityAnalysis(Network network, String workingVariantId, Contingen
5858
*/
5959
public CompletableFuture<SecurityAnalysisReport> run() {
6060
LOGGER.info("Starting mixed-mode security analysis");
61-
LOGGER.debug("Static simulator: {}, Dynamic simulator: {}",
62-
extension.getStaticSimulator(), extension.getDynamicSimulator());
61+
LOGGER.debug("Static simulator: {}, Dynamic simulator: {}", extension.getStaticSimulator(), extension.getDynamicSimulator());
6362

6463
// Step 1: Get all contingencies
6564
List<Contingency> allContingencies = contingenciesProvider.getContingencies(network);
@@ -70,16 +69,15 @@ public CompletableFuture<SecurityAnalysisReport> run() {
7069
SecurityAnalysisProvider staticProvider = findProvider(staticProviderName);
7170

7271
CompletableFuture<SecurityAnalysisReport> staticAnalysisFuture = staticProvider.run(
73-
network, workingVariantId, contingenciesProvider, runParameters);
72+
network, workingVariantId, contingenciesProvider, runParameters);
7473

7574
// Step 3: Chain dynamic analysis based on static results
7675
return staticAnalysisFuture.thenCompose(staticReport -> {
7776
LOGGER.info("Static analysis completed");
78-
7977
// Evaluate switch criteria
8078
AnalysisSwitchCriteria switchCriteria = new AnalysisSwitchCriteria(extension);
8179
List<String> contingenciesToRunDynamic = identifyDynamicContingencies(
82-
staticReport.getResult(), switchCriteria);
80+
staticReport.getResult(), switchCriteria);
8381

8482
LOGGER.info("Contingencies requiring dynamic analysis: {}", contingenciesToRunDynamic.size());
8583

@@ -91,7 +89,7 @@ public CompletableFuture<SecurityAnalysisReport> run() {
9189

9290
// Run dynamic analysis on filtered contingencies
9391
return runDynamicAnalysis(contingenciesToRunDynamic, allContingencies)
94-
.thenApply(dynamicReport -> mergeResults(staticReport, dynamicReport));
92+
.thenApply(dynamicReport -> mergeResults(staticReport, dynamicReport));
9593
}).exceptionally(ex -> {
9694
LOGGER.error("Error during mixed-mode security analysis", ex);
9795
return new SecurityAnalysisReport(SecurityAnalysisResult.empty());
@@ -114,8 +112,7 @@ private List<String> identifyDynamicContingencies(SecurityAnalysisResult staticR
114112
*/
115113
private boolean shouldRunDynamic(PostContingencyResult result, AnalysisSwitchCriteria switchCriteria) {
116114
SwitchDecision decision = switchCriteria.evaluate(result);
117-
LOGGER.debug("Contingency {} - Switch decision: {}",
118-
result.getContingency().getId(), decision.getReason());
115+
LOGGER.debug("Contingency {} - Switch decision: {}", result.getContingency().getId(), decision.getReason());
119116
return decision.shouldSwitch();
120117
}
121118

@@ -127,10 +124,10 @@ private CompletableFuture<SecurityAnalysisReport> runDynamicAnalysis(List<String
127124
List<Contingency> allContingencies) {
128125
LOGGER.info("Starting dynamic analysis pass for {} contingencies", contingencyIds.size());
129126

130-
ContingenciesProvider filteredProvider = (net) ->
131-
allContingencies.stream()
132-
.filter(c -> contingencyIds.contains(c.getId()))
133-
.collect(Collectors.toList());
127+
ContingenciesProvider filteredProvider = network ->
128+
allContingencies.stream()
129+
.filter(c -> contingencyIds.contains(c.getId()))
130+
.collect(Collectors.toList());
134131

135132
String dynamicProviderName = extension.getDynamicSimulator();
136133
SecurityAnalysisProvider dynamicProvider = findProvider(dynamicProviderName);
@@ -144,10 +141,8 @@ private CompletableFuture<SecurityAnalysisReport> runDynamicAnalysis(List<String
144141
* - If analyzed in dynamic pass: use dynamic result
145142
* - Otherwise: use static result
146143
*/
147-
private SecurityAnalysisReport mergeResults(SecurityAnalysisReport staticReport,
148-
SecurityAnalysisReport dynamicReport) {
144+
private SecurityAnalysisReport mergeResults(SecurityAnalysisReport staticReport, SecurityAnalysisReport dynamicReport) {
149145
LOGGER.info("Merging static and dynamic analysis results");
150-
151146
SecurityAnalysisResult staticResult = staticReport.getResult();
152147
SecurityAnalysisResult dynamicResult = dynamicReport.getResult();
153148

@@ -206,4 +201,4 @@ private SecurityAnalysisProvider findProvider(String providerName) {
206201
}
207202
return foundProvider;
208203
}
209-
}
204+
}

security-analysis/mixed-security-analysis/src/main/java/com/powsybl/mixed/security/analysis/MixedSecurityAnalysisProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public CompletableFuture<SecurityAnalysisReport> run(Network network,
6363
LOGGER.info("Starting mixed-mode security analysis for network: {}", network.getId());
6464

6565
MixedModeParametersExtension extension = runParameters.getSecurityAnalysisParameters().getExtension(MixedModeParametersExtension.class);
66-
if(extension == null) {
66+
if (extension == null) {
6767

6868
LOGGER.warn("MixedModeParametersExtension configuration is missing from SecurityAnalysisRunParameters, using defaults.");
6969
extension = (MixedModeParametersExtension) loadSpecificParameters(PlatformConfig.defaultConfig()).orElseThrow(() ->

security-analysis/mixed-security-analysis/src/main/java/com/powsybl/mixed/security/analysis/criteria/AnalysisSwitchCriteria.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@
1212
*
1313
* @author Riad Benradi {@literal <riad.benradi at rte-france.com>}
1414
*/
15+
1516
public class AnalysisSwitchCriteria {
17+
1618
private static final Logger LOGGER = LoggerFactory.getLogger(AnalysisSwitchCriteria.class);
1719
private final MixedModeParametersExtension extension;
20+
1821
public AnalysisSwitchCriteria(MixedModeParametersExtension extension) {
1922
this.extension = Objects.requireNonNull(extension);
2023
}
24+
2125
public SwitchDecision evaluate(PostContingencyResult result) {
2226
Objects.requireNonNull(result);
2327
if (extension.getSwitchCriteria() == null || extension.getSwitchCriteria().isEmpty()) {
@@ -31,6 +35,7 @@ public SwitchDecision evaluate(PostContingencyResult result) {
3135
}
3236
return new SwitchDecision(false, "No criteria met");
3337
}
38+
3439
private boolean evaluateCriterion(PostContingencyResult result, String criterion) {
3540
return switch (criterion.toUpperCase()) {
3641
case "FAILED" -> evaluateNonConvergence(result);
@@ -42,24 +47,24 @@ private boolean evaluateCriterion(PostContingencyResult result, String criterion
4247
}
4348
};
4449
}
50+
4551
private boolean evaluateNonConvergence(PostContingencyResult result) {
4652
boolean converged = result.getStatus() == PostContingencyComputationStatus.CONVERGED;
4753
if (!converged) {
48-
LOGGER.debug("Non-convergence detected for contingency {}",
49-
result.getContingency().getId());
54+
LOGGER.debug("Non-convergence detected for contingency {}", result.getContingency().getId());
5055
}
5156
return !converged;
5257
}
5358

5459
private boolean evaluateLimitViolations(PostContingencyResult result) {
5560
boolean hasViolations = !result.getLimitViolationsResult().getLimitViolations().isEmpty();
5661
if (hasViolations) {
57-
LOGGER.debug("Limit violations detected for contingency {}",
58-
result.getContingency().getId());
62+
LOGGER.debug("Limit violations detected for contingency {}", result.getContingency().getId());
5963
}
6064
return hasViolations;
6165
}
66+
6267
private boolean evaluateSpsTriggered(PostContingencyResult result) {
63-
return false;
68+
return true;
6469
}
6570
}

security-analysis/mixed-security-analysis/src/main/java/com/powsybl/mixed/security/analysis/criteria/SwitchDecision.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,12 @@ public String getReason() {
2626

2727
@Override
2828
public boolean equals(Object o) {
29-
if (this == o) return true;
30-
if (o == null || getClass() != o.getClass()) return false;
29+
if (this == o) {
30+
return true;
31+
}
32+
if (o == null || getClass() != o.getClass()) {
33+
return false;
34+
}
3135
SwitchDecision that = (SwitchDecision) o;
3236
return shouldSwitch == that.shouldSwitch && Objects.equals(reason, that.reason);
3337
}
@@ -40,9 +44,9 @@ public int hashCode() {
4044
@Override
4145
public String toString() {
4246
return "SwitchDecision{" +
43-
"shouldSwitch=" + shouldSwitch +
44-
", reason='" + reason + '\'' +
45-
'}';
47+
"shouldSwitch=" + shouldSwitch +
48+
", reason='" + reason + '\'' +
49+
'}';
4650
}
4751
}
4852

security-analysis/mixed-security-analysis/src/main/java/com/powsybl/mixed/security/analysis/parameters/MixedModeParametersExtension.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,19 @@ public class MixedModeParametersExtension extends AbstractExtension<SecurityAnal
1717
public static final String NAME = "mixed-mode-analysis";
1818
/**
1919
* The name of the static simulator to use for the first pass.
20-
* For example: "load-flow"
2120
*/
2221
private String staticSimulator;
2322

2423
/**
2524
* The name of the dynamic simulator to use for the second pass (for complex cases).
26-
* For example: "dynaflow"
2725
*/
2826
private String dynamicSimulator;
2927

3028
/**
3129
* The list of criteria that trigger a switch to the dynamic simulator.
32-
* Possible values: "NON_CONVERGENCE", "SEVERITY_THRESHOLD".
3330
*/
3431
private List<String> switchCriteria;
3532

36-
// --- Getters and Setters ---
37-
// These are necessary so that configuration tools like Jackson (used by PowSybl)
38-
// can populate the fields of this object.
39-
4033
public String getStaticSimulator() {
4134
return staticSimulator;
4235
}

security-analysis/mixed-security-analysis/src/test/java/com/powsybl/mixed/security/analysis/MixedSecurityAnalysisProviderTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import static org.junit.jupiter.api.Assertions.*;
1414
import static org.mockito.Mockito.mock;
1515
import static org.mockito.Mockito.when;
16+
1617
class MixedSecurityAnalysisProviderTest {
1718
@Mock
1819
private Network network;
@@ -21,21 +22,25 @@ class MixedSecurityAnalysisProviderTest {
2122
@Mock
2223
private SecurityAnalysisRunParameters runParameters;
2324
private MixedSecurityAnalysisProvider provider;
25+
2426
@BeforeEach
2527
void setUp() {
2628
MockitoAnnotations.openMocks(this);
2729
provider = new MixedSecurityAnalysisProvider();
2830
}
31+
2932
@Test
3033
void testProviderName() {
3134
assertEquals("MixedSecurityAnalysis", provider.getName());
3235
}
36+
3337
@Test
3438
void testProviderVersion() {
3539
String version = provider.getVersion();
3640
assertNotNull(version);
3741
assertFalse(version.isEmpty());
3842
}
43+
3944
@Test
4045
void testRunMissingExtensionThrows() {
4146
SecurityAnalysisParameters mockSaParams = mock(SecurityAnalysisParameters.class);

0 commit comments

Comments
 (0)