1717import com .powsybl .openrao .data .craccreation .creator .cim .craccreator .remedialaction .RemedialActionSeriesCreationContext ;
1818
1919import java .time .OffsetDateTime ;
20- import java .util .Collection ;
21- import java .util .HashSet ;
22- import java .util .Map ;
23- import java .util .Set ;
20+ import java .util .*;
2421import java .util .stream .Collectors ;
2522
2623/**
@@ -42,19 +39,19 @@ public class CimCracCreationContext implements CracCreationContext {
4239 this .crac = crac ;
4340 creationReport = new CracCreationReport ();
4441 this .timeStamp = timeStamp ;
45- this .angleCnecCreationContexts = new HashSet <>();
46- this .voltageCnecCreationContexts = new HashSet <>();
42+ this .angleCnecCreationContexts = new LinkedHashSet <>();
43+ this .voltageCnecCreationContexts = new LinkedHashSet <>();
4744 this .networkName = networkName ;
4845 }
4946
5047 protected CimCracCreationContext (CimCracCreationContext toCopy ) {
5148 this .crac = toCopy .crac ;
5249 this .isCreationSuccessful = toCopy .isCreationSuccessful ;
53- this .contingencyCreationContexts = new HashSet <>(toCopy .contingencyCreationContexts );
50+ this .contingencyCreationContexts = new LinkedHashSet <>(toCopy .contingencyCreationContexts );
5451 this .monitoredSeriesCreationContexts = toCopy .monitoredSeriesCreationContexts ;
55- this .angleCnecCreationContexts = new HashSet <>(toCopy .angleCnecCreationContexts );
56- this .voltageCnecCreationContexts = new HashSet <>(toCopy .voltageCnecCreationContexts );
57- this .remedialActionSeriesCreationContexts = new HashSet <>(toCopy .remedialActionSeriesCreationContexts );
52+ this .angleCnecCreationContexts = new LinkedHashSet <>(toCopy .angleCnecCreationContexts );
53+ this .voltageCnecCreationContexts = new LinkedHashSet <>(toCopy .voltageCnecCreationContexts );
54+ this .remedialActionSeriesCreationContexts = new LinkedHashSet <>(toCopy .remedialActionSeriesCreationContexts );
5855 this .creationReport = toCopy .creationReport ;
5956 this .timeStamp = toCopy .timeStamp ;
6057 this .networkName = toCopy .networkName ;
@@ -71,60 +68,60 @@ public Crac getCrac() {
7168 }
7269
7370 // Only contains contingency creation context report for the moment
74- public void buildCreationReport () {
75- addToReport (contingencyCreationContexts , "Contingency_Series" );
76- addToReport (angleCnecCreationContexts , "AdditionalConstraint_Series" );
77- addToReport (monitoredSeriesCreationContexts );
78- addToReport (remedialActionSeriesCreationContexts , "RemedialAction_Series" );
79- addToReport (voltageCnecCreationContexts );
71+ public void buildCreationReport (ReportNode reportNode ) {
72+ addToReport (contingencyCreationContexts , "Contingency_Series" , reportNode );
73+ addToReport (angleCnecCreationContexts , "AdditionalConstraint_Series" , reportNode );
74+ addToReport (monitoredSeriesCreationContexts , reportNode );
75+ addToReport (remedialActionSeriesCreationContexts , "RemedialAction_Series" , reportNode );
76+ addToReport (voltageCnecCreationContexts , reportNode );
8077 }
8178
82- private void addToReport (Collection <? extends ElementaryCreationContext > contexts , String nativeTypeIdentifier ) {
79+ private void addToReport (Collection <? extends ElementaryCreationContext > contexts , String nativeTypeIdentifier , ReportNode reportNode ) {
8380 contexts .stream ().filter (ElementaryCreationContext ::isAltered ).forEach (context ->
84- creationReport .altered (String .format ("%s \" %s\" was modified: %s. " , nativeTypeIdentifier , context .getNativeId (), context .getImportStatusDetail ()), ReportNode . NO_OP )
81+ creationReport .altered (String .format ("%s \" %s\" was modified: %s. " , nativeTypeIdentifier , context .getNativeId (), context .getImportStatusDetail ()), reportNode )
8582 );
8683 contexts .stream ().filter (context -> !context .isImported ()).forEach (context ->
87- creationReport .removed (String .format ("%s \" %s\" was not imported: %s. %s." , nativeTypeIdentifier , context .getNativeId (), context .getImportStatus (), context .getImportStatusDetail ()), ReportNode . NO_OP )
84+ creationReport .removed (String .format ("%s \" %s\" was not imported: %s. %s." , nativeTypeIdentifier , context .getNativeId (), context .getImportStatus (), context .getImportStatusDetail ()), reportNode )
8885 );
8986 }
9087
91- private void addToReport (Map <String , MonitoredSeriesCreationContext > monitoredSeriesCreationContexts ) {
88+ private void addToReport (Map <String , MonitoredSeriesCreationContext > monitoredSeriesCreationContexts , ReportNode reportNode ) {
9289 for (MonitoredSeriesCreationContext monitoredSeriesCreationContext : monitoredSeriesCreationContexts .values ()) {
9390 if (!monitoredSeriesCreationContext .isImported ()) {
9491 creationReport .removed (String .format ("Monitored_Series \" %s\" was not imported: %s. %s." , monitoredSeriesCreationContext .getNativeId (),
95- monitoredSeriesCreationContext .getImportStatus (), monitoredSeriesCreationContext .getImportStatusDetail ()), ReportNode . NO_OP );
92+ monitoredSeriesCreationContext .getImportStatus (), monitoredSeriesCreationContext .getImportStatusDetail ()), reportNode );
9693 } else {
9794 if (monitoredSeriesCreationContext .isAltered ()) {
9895 creationReport .altered (String .format ("Monitored_Series \" %s\" was altered : %s." , monitoredSeriesCreationContext .getNativeId (),
99- monitoredSeriesCreationContext .getImportStatusDetail ()), ReportNode . NO_OP );
96+ monitoredSeriesCreationContext .getImportStatusDetail ()), reportNode );
10097 }
101- addToReport (monitoredSeriesCreationContext .getMeasurementCreationContexts (), monitoredSeriesCreationContext .getNativeId ());
98+ addToReport (monitoredSeriesCreationContext .getMeasurementCreationContexts (), monitoredSeriesCreationContext .getNativeId (), reportNode );
10299 }
103100 }
104101 }
105102
106- private void addToReport (Set <MeasurementCreationContext > measurementCreationContexts , String monitoredSeriesNativeId ) {
103+ private void addToReport (Set <MeasurementCreationContext > measurementCreationContexts , String monitoredSeriesNativeId , ReportNode reportNode ) {
107104 for (MeasurementCreationContext measurementCreationContext : measurementCreationContexts ) {
108105 if (!measurementCreationContext .isImported ()) {
109106 creationReport .removed (String .format ("A Measurement in Monitored_Series \" %s\" was not imported: %s. %s." , monitoredSeriesNativeId ,
110- measurementCreationContext .getImportStatus (), measurementCreationContext .getImportStatusDetail ()), ReportNode . NO_OP );
107+ measurementCreationContext .getImportStatus (), measurementCreationContext .getImportStatusDetail ()), reportNode );
111108 } else {
112109 for (CnecCreationContext cnecCreationContext : measurementCreationContext .getCnecCreationContexts ().values ()) {
113110 if (!cnecCreationContext .isImported ()) {
114111 creationReport .removed (String .format ("A Cnec in Monitored_Series \" %s\" was not imported: %s. %s." , monitoredSeriesNativeId ,
115- cnecCreationContext .getImportStatus (), cnecCreationContext .getImportStatusDetail ()), ReportNode . NO_OP );
112+ cnecCreationContext .getImportStatus (), cnecCreationContext .getImportStatusDetail ()), reportNode );
116113 }
117114 }
118115 }
119116 }
120117 }
121118
122- private void addToReport (Set <VoltageCnecCreationContext > voltageCnecCreationContexts ) {
119+ private void addToReport (Set <VoltageCnecCreationContext > voltageCnecCreationContexts , ReportNode reportNode ) {
123120 voltageCnecCreationContexts .stream ().filter (context -> !context .isImported ()).forEach (context -> {
124121 String neId = context .getNativeNetworkElementId () != null ? context .getNativeNetworkElementId () : "all" ;
125122 String instant = context .getInstantId () != null ? context .getInstantId ().toLowerCase () : "all" ;
126123 String coName = context .getNativeContingencyName () != null ? context .getNativeContingencyName () : "all" ;
127- creationReport .removed (String .format ("VoltageCnec with network element \" %s\" , instant \" %s\" and contingency \" %s\" was not imported: %s. %s." , neId , instant , coName , context .getImportStatus (), context .getImportStatusDetail ()), ReportNode . NO_OP );
124+ creationReport .removed (String .format ("VoltageCnec with network element \" %s\" , instant \" %s\" and contingency \" %s\" was not imported: %s. %s." , neId , instant , coName , context .getImportStatus (), context .getImportStatusDetail ()), reportNode );
128125 }
129126 );
130127 }
@@ -149,7 +146,7 @@ public void addAngleCnecCreationContext(AngleCnecCreationContext angleCnecCreati
149146 }
150147
151148 public Set <AngleCnecCreationContext > getAngleCnecCreationContexts () {
152- return new HashSet <>(angleCnecCreationContexts );
149+ return new LinkedHashSet <>(angleCnecCreationContexts );
153150 }
154151
155152 public AngleCnecCreationContext getAngleCnecCreationContext (String seriesId ) {
@@ -161,7 +158,7 @@ public void addVoltageCnecCreationContext(VoltageCnecCreationContext voltageCnec
161158 }
162159
163160 public Set <VoltageCnecCreationContext > getVoltageCnecCreationContexts () {
164- return new HashSet <>(voltageCnecCreationContexts );
161+ return new LinkedHashSet <>(voltageCnecCreationContexts );
165162 }
166163
167164 public VoltageCnecCreationContext getVoltageCnecCreationContext (String nativeNetworkElementId , String instantId , String nativeContingencyName ) {
@@ -181,11 +178,11 @@ public Set<VoltageCnecCreationContext> getVoltageCnecCreationContextsForContinge
181178 }
182179
183180 public void setContingencyCreationContexts (Set <CimContingencyCreationContext > contingencyCreationContexts ) {
184- this .contingencyCreationContexts = new HashSet <>(contingencyCreationContexts );
181+ this .contingencyCreationContexts = new LinkedHashSet <>(contingencyCreationContexts );
185182 }
186183
187184 public Set <CimContingencyCreationContext > getContingencyCreationContexts () {
188- return new HashSet <>(contingencyCreationContexts );
185+ return new LinkedHashSet <>(contingencyCreationContexts );
189186 }
190187
191188 public MonitoredSeriesCreationContext getMonitoredSeriesCreationContext (String seriesId ) {
@@ -201,7 +198,7 @@ public void setMonitoredSeriesCreationContexts(Map<String, MonitoredSeriesCreati
201198 }
202199
203200 public void setRemedialActionSeriesCreationContexts (Set <RemedialActionSeriesCreationContext > remedialActionCreationContexts ) {
204- this .remedialActionSeriesCreationContexts = new HashSet <>(remedialActionCreationContexts );
201+ this .remedialActionSeriesCreationContexts = new LinkedHashSet <>(remedialActionCreationContexts );
205202 }
206203
207204 public Set <RemedialActionSeriesCreationContext > getRemedialActionSeriesCreationContexts () {
0 commit comments