1010import org .gridsuite .monitor .commons .ProcessConfig ;
1111import org .gridsuite .monitor .commons .ProcessType ;
1212import org .gridsuite .monitor .commons .SecurityAnalysisConfig ;
13- import org .gridsuite .monitor .server .entities .ProcessConfigEntity ;
1413import org .gridsuite .monitor .server .dto .ProcessConfigComparison ;
1514import org .gridsuite .monitor .server .dto .ProcessConfigFieldComparison ;
15+ import org .gridsuite .monitor .server .entities .ProcessConfigEntity ;
1616import org .gridsuite .monitor .server .entities .SecurityAnalysisConfigEntity ;
1717import org .gridsuite .monitor .server .mapper .SecurityAnalysisConfigMapper ;
1818import org .gridsuite .monitor .server .repositories .ProcessConfigRepository ;
1919import org .springframework .stereotype .Service ;
2020import org .springframework .transaction .annotation .Transactional ;
2121
22- import java .util .ArrayList ;
23- import java .util .List ;
24- import java .util .Objects ;
25- import java .util .Optional ;
26- import java .util .UUID ;
22+ import java .util .*;
2723
2824/**
2925 * @author Franck Lecuyer <franck.lecuyer at rte-france.com>
@@ -50,10 +46,7 @@ public UUID createProcessConfig(ProcessConfig processConfig) {
5046
5147 @ Transactional (readOnly = true )
5248 public Optional <PersistedProcessConfig > getProcessConfig (UUID processConfigUuid ) {
53- return processConfigRepository .findById (processConfigUuid ).flatMap (entity -> switch (entity ) {
54- case SecurityAnalysisConfigEntity sae -> Optional .of (securityAnalysisConfigMapper .toPersistedProcessConfigDto (sae ));
55- default -> throw new IllegalArgumentException ("Unsupported entity type: " + entity .getProcessType ());
56- });
49+ return processConfigRepository .findById (processConfigUuid ).map (this ::toPersistedProcessConfig );
5750 }
5851
5952 @ Transactional
@@ -84,24 +77,33 @@ public boolean deleteProcessConfig(UUID processConfigUuid) {
8477
8578 @ Transactional (readOnly = true )
8679 public List <PersistedProcessConfig > getProcessConfigs (ProcessType processType ) {
87- List <ProcessConfigEntity > processConfigs = processConfigRepository .findAllByProcessType (processType );
88- return processConfigs .stream ().map (entity -> switch (entity ) {
89- case SecurityAnalysisConfigEntity sae -> securityAnalysisConfigMapper .toPersistedProcessConfigDto (sae );
80+ return processConfigRepository .findAllByProcessType (processType ).stream ()
81+ .map (this ::toPersistedProcessConfig )
82+ .toList ();
83+ }
84+
85+ private ProcessConfig toProcessConfig (ProcessConfigEntity entity ) {
86+ return switch (entity ) {
87+ case SecurityAnalysisConfigEntity sae -> securityAnalysisConfigMapper .toDto (sae );
9088 default -> throw new IllegalArgumentException ("Unsupported entity type: " + entity .getProcessType ());
91- }).toList ();
89+ };
90+ }
91+
92+ private PersistedProcessConfig toPersistedProcessConfig (ProcessConfigEntity entity ) {
93+ return new PersistedProcessConfig (entity .getId (), toProcessConfig (entity ));
9294 }
9395
9496 @ Transactional (readOnly = true )
9597 public Optional <ProcessConfigComparison > compareProcessConfigs (UUID uuid1 , UUID uuid2 ) {
96- Optional <PersistedProcessConfig > config1 = getProcessConfig (uuid1 );
97- Optional <PersistedProcessConfig > config2 = getProcessConfig (uuid2 );
98+ Optional <ProcessConfigEntity > processConfigEntity1 = processConfigRepository . findById (uuid1 );
99+ Optional <ProcessConfigEntity > processConfigEntity2 = processConfigRepository . findById (uuid2 );
98100
99- if (config1 .isEmpty () || config2 .isEmpty ()) {
101+ if (processConfigEntity1 .isEmpty () || processConfigEntity2 .isEmpty ()) {
100102 return Optional .empty ();
101103 }
102104
103- ProcessConfig processConfig1 = config1 .get (). processConfig ( );
104- ProcessConfig processConfig2 = config2 .get (). processConfig ( );
105+ ProcessConfig processConfig1 = toProcessConfig ( processConfigEntity1 .get ());
106+ ProcessConfig processConfig2 = toProcessConfig ( processConfigEntity2 .get ());
105107
106108 if (processConfig1 .processType () != processConfig2 .processType ()) {
107109 throw new IllegalArgumentException ("Cannot compare different process config types: " + processConfig1 .processType () + " vs " + processConfig2 .processType ());
0 commit comments