Skip to content

Commit b4dc448

Browse files
committed
CRAC importer integration of ReportNode beginning
Signed-off-by: Sébastien Murgey <sebastien.murgey@rte-france.com>
1 parent 1f31dfb commit b4dc448

17 files changed

Lines changed: 111 additions & 20 deletions

File tree

data/crac-creation/crac-creator-api/src/test/java/com/powsybl/openrao/data/craccreation/creator/api/CracCreationReportTest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
import org.junit.jupiter.api.Test;
1717
import org.slf4j.LoggerFactory;
1818

19+
import java.io.IOException;
20+
import java.io.StringWriter;
21+
import java.net.URISyntaxException;
22+
import java.nio.file.Files;
23+
import java.nio.file.Path;
1924
import java.util.List;
2025

2126
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -28,6 +33,11 @@ class CracCreationReportTest {
2833

2934
private CracCreationReport cracCreationReport;
3035

36+
private static ReportNode buildNewRootNode() {
37+
ReportNode reportNode = ReportNode.newRootReportNode().withMessageTemplate("root", "Root node for tests").build();
38+
return reportNode;
39+
}
40+
3141
@BeforeEach
3242
public void setUp() {
3343
cracCreationReport = new CracCreationReport();
@@ -127,4 +137,22 @@ void testPrintReport() {
127137
assertEquals("[INFO] [WARN] message1", logsList.get(0).toString());
128138
assertEquals("[INFO] [ERROR] message2", logsList.get(1).toString());
129139
}
140+
141+
@Test
142+
void testReportNode() throws IOException, URISyntaxException {
143+
ReportNode reportNode = buildNewRootNode();
144+
cracCreationReport.warn("message1", reportNode);
145+
cracCreationReport.error("message2", reportNode);
146+
cracCreationReport.info("message3", reportNode);
147+
cracCreationReport.added("message4", reportNode);
148+
cracCreationReport.altered("message5", reportNode);
149+
cracCreationReport.removed("message6", reportNode);
150+
151+
String expected = Files.readString(Path.of(getClass().getResource("/expectedReportNodeContent.txt").toURI()));
152+
try (StringWriter writer = new StringWriter()) {
153+
reportNode.print(writer);
154+
String actual = writer.toString();
155+
assertEquals(expected, actual);
156+
}
157+
}
130158
}

data/crac-creation/crac-creator-api/src/test/java/com/powsybl/openrao/data/craccreation/creator/api/mock/NativeCracImporterMock.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public NativeCracMock importNativeCrac(InputStream inputStream, ReportNode repor
3030
}
3131

3232
@Override
33-
public boolean exists(String fileName, InputStream inputStream) {
33+
public boolean exists(String fileName, InputStream inputStream, ReportNode reportNode) {
3434
return true;
3535
}
3636
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
+ Root node for tests
2+
[WARN] message1
3+
[ERROR] message2
4+
[INFO] message3
5+
[ADDED] message4
6+
[ALTERED] message5
7+
[REMOVED] message6

data/crac-creation/crac-creator-cim/src/main/java/com/powsybl/openrao/data/craccreation/creator/cim/importer/CimCracImporter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public CimCrac importNativeCrac(InputStream inputStream, ReportNode reportNode)
5858
}
5959

6060
@Override
61-
public boolean exists(String s, InputStream inputStream) {
61+
public boolean exists(String s, InputStream inputStream, ReportNode reportNode) {
6262
Source xmlFile = new StreamSource(inputStream);
6363
// The following line triggers sonar issue java:S2755 which prevents us from accessing XSD schema files
6464
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); //NOSONAR

data/crac-creation/crac-creator-csa-profiles/src/main/java/com/powsybl/openrao/data/craccreation/creator/csaprofile/importer/CsaProfileCracImporter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ private static void importZipEntry(ZipEntry zipEntry, ZipInputStream zipInputStr
131131
}
132132

133133
@Override
134-
public boolean exists(String fileName, InputStream inputStream) {
134+
public boolean exists(String fileName, InputStream inputStream, ReportNode reportNode) {
135135
TripleStore tripleStoreCsaProfile = TripleStoreFactory.create(CsaProfileConstants.TRIPLESTORE_RDF4J_NAME);
136136
tripleStoreCsaProfile.read(inputStream, CsaProfileConstants.RDF_BASE_URL, "");
137137
return FilenameUtils.getExtension(fileName).equals(CsaProfileConstants.EXTENSION_FILE_CSA_PROFILE);

data/crac-creation/crac-creator-cse/src/main/java/com/powsybl/openrao/data/craccreation/creator/cse/CseCracImporter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public CseCrac importNativeCrac(InputStream inputStream, ReportNode reportNode)
5757
}
5858

5959
@Override
60-
public boolean exists(String s, InputStream inputStream) {
60+
public boolean exists(String s, InputStream inputStream, ReportNode reportNode) {
6161
Source xmlFile = new StreamSource(inputStream);
6262
// The following line triggers sonar issue java:S2755 which prevents us from accessing XSD schema files
6363
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); //NOSONAR

data/crac-creation/crac-creator-fb-constraint/src/main/java/com/powsybl/openrao/data/craccreation/creator/fbconstraint/importer/FbConstraintImporter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public FbConstraint importNativeCrac(InputStream inputStream, ReportNode reportN
6969
}
7070

7171
@Override
72-
public boolean exists(String s, InputStream inputStream) {
72+
public boolean exists(String s, InputStream inputStream, ReportNode reportNode) {
7373
try {
7474
byte[] bytes = getBytesFromInputStream(inputStream);
7575
int flowBasedDocumentVersion = flowBasedDocumentVersion(new ByteArrayInputStream(bytes));

data/crac-io/crac-io-api/src/main/java/com/powsybl/openrao/data/cracioapi/CracImporter.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package com.powsybl.openrao.data.cracioapi;
99

10+
import com.powsybl.commons.report.ReportNode;
1011
import com.powsybl.iidm.network.Network;
1112
import com.powsybl.openrao.data.cracapi.Crac;
1213
import com.powsybl.openrao.data.cracapi.CracFactory;
@@ -24,7 +25,20 @@ public interface CracImporter {
2425

2526
Crac importCrac(InputStream inputStream, @Nonnull CracFactory cracFactory, Network network);
2627

28+
default Crac importCrac(InputStream inputStream, @Nonnull CracFactory cracFactory, Network network, ReportNode reportNode) {
29+
return importCrac(inputStream, cracFactory, network);
30+
}
31+
2732
Crac importCrac(InputStream inputStream, Network network);
2833

34+
default Crac importCrac(InputStream inputStream, Network network, ReportNode reportNode) {
35+
return importCrac(inputStream, network);
36+
}
37+
2938
boolean exists(String fileName, InputStream inputStream);
39+
40+
default boolean exists(String fileName, InputStream inputStream, ReportNode reportNode) {
41+
return exists(fileName, inputStream);
42+
}
43+
3044
}

data/crac-io/crac-io-api/src/main/java/com/powsybl/openrao/data/cracioapi/CracImporters.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package com.powsybl.openrao.data.cracioapi;
99

10+
import com.powsybl.commons.report.ReportNode;
1011
import com.powsybl.iidm.network.Network;
1112
import com.powsybl.openrao.commons.OpenRaoException;
1213
import com.powsybl.openrao.data.cracapi.Crac;
@@ -30,8 +31,12 @@ private CracImporters() {
3031
}
3132

3233
public static Crac importCrac(Path cracPath, Network network) {
34+
return importCrac(cracPath, network, ReportNode.NO_OP);
35+
}
36+
37+
public static Crac importCrac(Path cracPath, Network network, ReportNode reportNode) {
3338
try (InputStream is = new FileInputStream(cracPath.toFile())) {
34-
return importCrac(cracPath.getFileName().toString(), is, network);
39+
return importCrac(cracPath.getFileName().toString(), is, network, reportNode);
3540
} catch (FileNotFoundException e) {
3641
throw new OpenRaoException("File not found.");
3742
} catch (IOException e) {
@@ -47,6 +52,10 @@ private static byte[] getBytesFromInputStream(InputStream inputStream) throws IO
4752
}
4853

4954
public static Crac importCrac(String fileName, InputStream inputStream, Network network) {
55+
return importCrac(fileName, inputStream, network, ReportNode.NO_OP);
56+
}
57+
58+
public static Crac importCrac(String fileName, InputStream inputStream, Network network, ReportNode reportNode) {
5059
try {
5160
byte[] bytes = getBytesFromInputStream(inputStream);
5261

@@ -61,6 +70,10 @@ public static Crac importCrac(String fileName, InputStream inputStream, Network
6170
}
6271

6372
public static CracImporter findImporter(String fileName, InputStream inputStream) {
73+
return findImporter(fileName, inputStream, ReportNode.NO_OP);
74+
}
75+
76+
public static CracImporter findImporter(String fileName, InputStream inputStream, ReportNode reportNode) {
6477
try {
6578
byte[] bytes = getBytesFromInputStream(inputStream);
6679

data/native-crac/native-crac-io-api/src/main/java/com/powsybl/openrao/data/nativecracioapi/NativeCracImporter.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ public interface NativeCracImporter<T extends NativeCrac> {
2727
*/
2828
String getFormat();
2929

30+
/**
31+
* Import a NativeCrac from an input stream.
32+
*/
33+
default T importNativeCrac(InputStream inputStream) {
34+
return importNativeCrac(inputStream, ReportNode.NO_OP);
35+
}
36+
3037
/**
3138
* Import a NativeCrac from an input stream.
3239
*/
@@ -38,5 +45,15 @@ public interface NativeCracImporter<T extends NativeCrac> {
3845
* @param inputStream the input stream of the file
3946
* @return true if the inputStream is importable, false otherwise
4047
*/
41-
boolean exists(String fileName, InputStream inputStream);
48+
default boolean exists(String fileName, InputStream inputStream) {
49+
return exists(fileName, inputStream, ReportNode.NO_OP);
50+
}
51+
52+
/**
53+
* Check if a file is importable.
54+
* @param fileName the file name
55+
* @param inputStream the input stream of the file
56+
* @return true if the inputStream is importable, false otherwise
57+
*/
58+
boolean exists(String fileName, InputStream inputStream, ReportNode reportNode);
4259
}

0 commit comments

Comments
 (0)