11
11
* @author Kevin Le Saulnier <kevin.lesaulnier at rte-france.com>
12
12
*/
13
13
14
- import static org .gridsuite .study .server .StudyConstants .DELIMITER ;
15
- import static org .gridsuite .study .server .StudyConstants .QUERY_PARAM_VARIANT_ID ;
16
- import static org .gridsuite .study .server .StudyConstants .SINGLE_LINE_DIAGRAM_API_VERSION ;
17
- import static org .gridsuite .study .server .StudyException .Type .SVG_NOT_FOUND ;
14
+ import static org .gridsuite .study .server .StudyConstants .*;
15
+ import static org .gridsuite .study .server .StudyException .Type .*;
16
+ import static org .gridsuite .study .server .utils .StudyUtils .handleHttpError ;
18
17
19
18
import java .util .List ;
19
+ import java .util .Objects ;
20
20
import java .util .UUID ;
21
21
22
22
import org .apache .commons .lang3 .StringUtils ;
@@ -62,21 +62,21 @@ public SingleLineDiagramService(@Value("${powsybl.services.single-line-diagram-s
62
62
63
63
public List <String > getAvailableSvgComponentLibraries () {
64
64
String path = UriComponentsBuilder
65
- .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/svg-component-libraries" ).toUriString ();
65
+ .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/svg-component-libraries" ).toUriString ();
66
66
67
67
return restTemplate .exchange (singleLineDiagramServerBaseUri + path , HttpMethod .GET , null ,
68
- new ParameterizedTypeReference <List <String >>() {
69
- }).getBody ();
68
+ new ParameterizedTypeReference <List <String >>() {
69
+ }).getBody ();
70
70
}
71
71
72
72
public byte [] getVoltageLevelSvg (UUID networkUuid , String variantId , String voltageLevelId , DiagramParameters diagramParameters ) {
73
73
var uriComponentsBuilder = UriComponentsBuilder
74
- .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/svg/{networkUuid}/{voltageLevelId}" )
75
- .queryParam (QUERY_PARAM_USE_NAME , diagramParameters .isUseName ())
76
- .queryParam (QUERY_PARAM_CENTER_LABEL , diagramParameters .isLabelCentered ())
77
- .queryParam (QUERY_PARAM_DIAGONAL_LABEL , diagramParameters .isDiagonalLabel ())
78
- .queryParam (QUERY_PARAM_TOPOLOGICAL_COLORING , diagramParameters .isTopologicalColoring ())
79
- .queryParam (LANGUAGE , diagramParameters .getLanguage ());
74
+ .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/svg/{networkUuid}/{voltageLevelId}" )
75
+ .queryParam (QUERY_PARAM_USE_NAME , diagramParameters .isUseName ())
76
+ .queryParam (QUERY_PARAM_CENTER_LABEL , diagramParameters .isLabelCentered ())
77
+ .queryParam (QUERY_PARAM_DIAGONAL_LABEL , diagramParameters .isDiagonalLabel ())
78
+ .queryParam (QUERY_PARAM_TOPOLOGICAL_COLORING , diagramParameters .isTopologicalColoring ())
79
+ .queryParam (LANGUAGE , diagramParameters .getLanguage ());
80
80
addParameters (diagramParameters , uriComponentsBuilder , variantId );
81
81
82
82
var path = uriComponentsBuilder
@@ -98,14 +98,14 @@ public byte[] getVoltageLevelSvg(UUID networkUuid, String variantId, String volt
98
98
99
99
public String getVoltageLevelSvgAndMetadata (UUID networkUuid , String variantId , String voltageLevelId , DiagramParameters diagramParameters ) {
100
100
var uriComponentsBuilder = UriComponentsBuilder
101
- .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION
102
- + "/svg-and-metadata/{networkUuid}/{voltageLevelId}" )
103
- .queryParam (QUERY_PARAM_USE_NAME , diagramParameters .isUseName ())
104
- .queryParam (QUERY_PARAM_CENTER_LABEL , diagramParameters .isLabelCentered ())
105
- .queryParam (QUERY_PARAM_DIAGONAL_LABEL , diagramParameters .isDiagonalLabel ())
106
- .queryParam (QUERY_PARAM_TOPOLOGICAL_COLORING , diagramParameters .isTopologicalColoring ())
107
- .queryParam (QUERY_PARAM_DISPLAY_MODE , diagramParameters .getSldDisplayMode ())
108
- .queryParam (LANGUAGE , diagramParameters .getLanguage ());
101
+ .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION
102
+ + "/svg-and-metadata/{networkUuid}/{voltageLevelId}" )
103
+ .queryParam (QUERY_PARAM_USE_NAME , diagramParameters .isUseName ())
104
+ .queryParam (QUERY_PARAM_CENTER_LABEL , diagramParameters .isLabelCentered ())
105
+ .queryParam (QUERY_PARAM_DIAGONAL_LABEL , diagramParameters .isDiagonalLabel ())
106
+ .queryParam (QUERY_PARAM_TOPOLOGICAL_COLORING , diagramParameters .isTopologicalColoring ())
107
+ .queryParam (QUERY_PARAM_DISPLAY_MODE , diagramParameters .getSldDisplayMode ())
108
+ .queryParam (LANGUAGE , diagramParameters .getLanguage ());
109
109
addParameters (diagramParameters , uriComponentsBuilder , variantId );
110
110
111
111
String result ;
@@ -123,12 +123,12 @@ public String getVoltageLevelSvgAndMetadata(UUID networkUuid, String variantId,
123
123
124
124
public byte [] getSubstationSvg (UUID networkUuid , String variantId , String substationId , DiagramParameters diagramParameters , String substationLayout ) {
125
125
var uriComponentsBuilder = UriComponentsBuilder
126
- .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/substation-svg/{networkUuid}/{substationId}" )
127
- .queryParam (QUERY_PARAM_USE_NAME , diagramParameters .isUseName ())
128
- .queryParam (QUERY_PARAM_CENTER_LABEL , diagramParameters .isLabelCentered ())
129
- .queryParam (QUERY_PARAM_DIAGONAL_LABEL , diagramParameters .isDiagonalLabel ())
130
- .queryParam (QUERY_PARAM_TOPOLOGICAL_COLORING , diagramParameters .isTopologicalColoring ())
131
- .queryParam (QUERY_PARAM_SUBSTATION_LAYOUT , substationLayout );
126
+ .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/substation-svg/{networkUuid}/{substationId}" )
127
+ .queryParam (QUERY_PARAM_USE_NAME , diagramParameters .isUseName ())
128
+ .queryParam (QUERY_PARAM_CENTER_LABEL , diagramParameters .isLabelCentered ())
129
+ .queryParam (QUERY_PARAM_DIAGONAL_LABEL , diagramParameters .isDiagonalLabel ())
130
+ .queryParam (QUERY_PARAM_TOPOLOGICAL_COLORING , diagramParameters .isTopologicalColoring ())
131
+ .queryParam (QUERY_PARAM_SUBSTATION_LAYOUT , substationLayout );
132
132
addParameters (diagramParameters , uriComponentsBuilder , variantId );
133
133
var path = uriComponentsBuilder .buildAndExpand (networkUuid , substationId ).toUriString ();
134
134
@@ -147,13 +147,13 @@ public byte[] getSubstationSvg(UUID networkUuid, String variantId, String substa
147
147
148
148
public String getSubstationSvgAndMetadata (UUID networkUuid , String variantId , String substationId , DiagramParameters diagramParameters , String substationLayout ) {
149
149
var uriComponentsBuilder = UriComponentsBuilder
150
- .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/substation-svg-and-metadata/{networkUuid}/{substationId}" )
151
- .queryParam (QUERY_PARAM_USE_NAME , diagramParameters .isUseName ())
152
- .queryParam (QUERY_PARAM_CENTER_LABEL , diagramParameters .isLabelCentered ())
153
- .queryParam (QUERY_PARAM_DIAGONAL_LABEL , diagramParameters .isDiagonalLabel ())
154
- .queryParam (QUERY_PARAM_TOPOLOGICAL_COLORING , diagramParameters .isTopologicalColoring ())
155
- .queryParam (QUERY_PARAM_SUBSTATION_LAYOUT , substationLayout )
156
- .queryParam (LANGUAGE , diagramParameters .getLanguage ());
150
+ .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/substation-svg-and-metadata/{networkUuid}/{substationId}" )
151
+ .queryParam (QUERY_PARAM_USE_NAME , diagramParameters .isUseName ())
152
+ .queryParam (QUERY_PARAM_CENTER_LABEL , diagramParameters .isLabelCentered ())
153
+ .queryParam (QUERY_PARAM_DIAGONAL_LABEL , diagramParameters .isDiagonalLabel ())
154
+ .queryParam (QUERY_PARAM_TOPOLOGICAL_COLORING , diagramParameters .isTopologicalColoring ())
155
+ .queryParam (QUERY_PARAM_SUBSTATION_LAYOUT , substationLayout )
156
+ .queryParam (LANGUAGE , diagramParameters .getLanguage ());
157
157
addParameters (diagramParameters , uriComponentsBuilder , variantId );
158
158
159
159
String result ;
@@ -171,13 +171,13 @@ public String getSubstationSvgAndMetadata(UUID networkUuid, String variantId, St
171
171
172
172
public String getNetworkAreaDiagram (UUID networkUuid , String variantId , String nadRequestInfos ) {
173
173
var uriComponentsBuilder = UriComponentsBuilder .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION +
174
- "/network-area-diagram/{networkUuid}" );
174
+ "/network-area-diagram/{networkUuid}" );
175
175
if (!StringUtils .isBlank (variantId )) {
176
176
uriComponentsBuilder .queryParam (QUERY_PARAM_VARIANT_ID , variantId );
177
177
}
178
178
var path = uriComponentsBuilder
179
- .buildAndExpand (networkUuid )
180
- .toUriString ();
179
+ .buildAndExpand (networkUuid )
180
+ .toUriString ();
181
181
182
182
var headers = new HttpHeaders ();
183
183
headers .setContentType (MediaType .APPLICATION_JSON );
@@ -196,9 +196,9 @@ public String getNetworkAreaDiagram(UUID networkUuid, String variantId, String n
196
196
197
197
public UUID createDiagramConfig (NetworkAreaDiagramLayoutDetails nadLayoutDetails ) {
198
198
var path = UriComponentsBuilder
199
- .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/network-area-diagram/config" )
200
- .buildAndExpand ()
201
- .toUriString ();
199
+ .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/network-area-diagram/config" )
200
+ .buildAndExpand ()
201
+ .toUriString ();
202
202
203
203
HttpHeaders headers = new HttpHeaders ();
204
204
headers .setContentType (MediaType .APPLICATION_JSON );
@@ -210,9 +210,9 @@ public UUID createDiagramConfig(NetworkAreaDiagramLayoutDetails nadLayoutDetails
210
210
211
211
public void createMultipleDiagramConfigs (List <NadConfigInfos > nadConfigs ) {
212
212
var path = UriComponentsBuilder
213
- .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/network-area-diagram/configs" )
214
- .buildAndExpand ()
215
- .toUriString ();
213
+ .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/network-area-diagram/configs" )
214
+ .buildAndExpand ()
215
+ .toUriString ();
216
216
217
217
HttpHeaders headers = new HttpHeaders ();
218
218
headers .setContentType (MediaType .APPLICATION_JSON );
@@ -224,9 +224,9 @@ public void createMultipleDiagramConfigs(List<NadConfigInfos> nadConfigs) {
224
224
225
225
public void deleteMultipleDiagramConfigs (List <UUID > configUuids ) {
226
226
var path = UriComponentsBuilder
227
- .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/network-area-diagram/configs" )
228
- .buildAndExpand ()
229
- .toUriString ();
227
+ .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/network-area-diagram/configs" )
228
+ .buildAndExpand ()
229
+ .toUriString ();
230
230
231
231
HttpHeaders headers = new HttpHeaders ();
232
232
headers .setContentType (MediaType .APPLICATION_JSON );
@@ -248,4 +248,24 @@ public void addParameters(DiagramParameters diagramParameters, UriComponentsBuil
248
248
uriComponentsBuilder .queryParam (QUERY_PARAM_VARIANT_ID , variantId );
249
249
}
250
250
}
251
+
252
+ public UUID duplicateNadConfig (UUID sourceNadConfigUuid ) {
253
+ Objects .requireNonNull (sourceNadConfigUuid );
254
+
255
+ var path = UriComponentsBuilder
256
+ .fromPath (DELIMITER + SINGLE_LINE_DIAGRAM_API_VERSION + "/network-area-diagram/config" )
257
+ .queryParam ("duplicateFrom" , sourceNadConfigUuid )
258
+ .buildAndExpand ()
259
+ .toUriString ();
260
+
261
+ HttpHeaders headers = new HttpHeaders ();
262
+ headers .setContentType (MediaType .APPLICATION_JSON );
263
+ HttpEntity <NetworkAreaDiagramLayoutDetails > httpEntity = new HttpEntity <>(headers );
264
+
265
+ try {
266
+ return restTemplate .postForObject (singleLineDiagramServerBaseUri + path , httpEntity , UUID .class );
267
+ } catch (HttpStatusCodeException e ) {
268
+ throw handleHttpError (e , DUPLICATE_DIAGRAM_GRID_LAYOUT_FAILED );
269
+ }
270
+ }
251
271
}
0 commit comments