@@ -200,12 +200,11 @@ def create_system_landscape_view(
200
200
**kwargs: Provide keyword arguments for instantiating a
201
201
`SystemLandscapeView` (recommended).
202
202
"""
203
- # TODO:
204
- # assertThatTheViewKeyIsSpecifiedAndUnique(key);
205
203
if system_landscape_view is None :
206
204
system_landscape_view = SystemLandscapeView (
207
205
model = self .get_model (), ** kwargs
208
206
)
207
+ self ._ensure_key_is_specific_and_unique (system_landscape_view .key )
209
208
system_landscape_view .set_viewset (self )
210
209
self .system_landscape_views .add (system_landscape_view )
211
210
return system_landscape_view
@@ -224,9 +223,9 @@ def create_system_context_view(
224
223
"""
225
224
# TODO:
226
225
# assertThatTheSoftwareSystemIsNotNull(softwareSystem);
227
- # assertThatTheViewKeyIsSpecifiedAndUnique(key);
228
226
if system_context_view is None :
229
227
system_context_view = SystemContextView (** kwargs )
228
+ self ._ensure_key_is_specific_and_unique (system_context_view .key )
230
229
system_context_view .set_viewset (self )
231
230
self .system_context_views .add (system_context_view )
232
231
return system_context_view
@@ -245,9 +244,9 @@ def create_container_view(
245
244
"""
246
245
# TODO:
247
246
# assertThatTheSoftwareSystemIsNotNull(softwareSystem);
248
- # assertThatTheViewKeyIsSpecifiedAndUnique(key);
249
247
if container_view is None :
250
248
container_view = ContainerView (** kwargs )
249
+ self ._ensure_key_is_specific_and_unique (container_view .key )
251
250
container_view .set_viewset (self )
252
251
self .container_views .add (container_view )
253
252
return container_view
@@ -264,10 +263,9 @@ def create_component_view(
264
263
**kwargs: Provide keyword arguments for instantiating a `ComponentView`
265
264
(recommended).
266
265
"""
267
- # TODO:
268
- # AssertThatTheViewKeyIsUnique(key);
269
266
if component_view is None :
270
267
component_view = ComponentView (** kwargs )
268
+ self ._ensure_key_is_specific_and_unique (component_view .key )
271
269
component_view .set_viewset (self )
272
270
self .component_views .add (component_view )
273
271
return component_view
@@ -279,9 +277,8 @@ def create_deployment_view(self, **kwargs) -> DeploymentView:
279
277
Args:
280
278
**kwargs: Provide keyword arguments for instantiating a `DeploymentView`
281
279
"""
282
- # TODO:
283
- # AssertThatTheViewKeyIsUnique(key);
284
280
deployment_view = DeploymentView (** kwargs )
281
+ self ._ensure_key_is_specific_and_unique (deployment_view .key )
285
282
deployment_view .set_viewset (self )
286
283
deployment_view .set_model (self .model )
287
284
self .deployment_views .add (deployment_view )
@@ -294,9 +291,8 @@ def create_dynamic_view(self, **kwargs) -> DynamicView:
294
291
Args:
295
292
**kwagrs: Provide keyword arguments for instantiating a `DynamicView`.
296
293
"""
297
- # TODO:
298
- # AssertThatTheViewKeyIsUnique(key);
299
294
dynamic_view = DynamicView (** kwargs )
295
+ self ._ensure_key_is_specific_and_unique (dynamic_view .key )
300
296
dynamic_view .set_viewset (self )
301
297
dynamic_view .set_model (self .model )
302
298
self .dynamic_views .add (dynamic_view )
@@ -309,9 +305,8 @@ def create_filtered_view(self, **kwargs) -> FilteredView:
309
305
Args:
310
306
**kwargs: Provide keyword arguments for instantiating a `FilteredView`.
311
307
"""
312
- # TODO:
313
- # AssertThatTheViewKeyIsUnique(key);
314
308
filtered_view = FilteredView (** kwargs )
309
+ self ._ensure_key_is_specific_and_unique (filtered_view .key )
315
310
filtered_view .set_viewset (self )
316
311
self .filtered_views .add (filtered_view )
317
312
return filtered_view
@@ -338,6 +333,8 @@ def __getitem__(self, key: str) -> AbstractView:
338
333
339
334
def copy_layout_information_from (self , source : "ViewSet" ) -> None :
340
335
"""Copy all the layout information from a source ViewSet."""
336
+
337
+ # Note that filtered views don't have any layout information to copy.
341
338
for source_view in source .system_landscape_views :
342
339
destination_view = self ._find_system_landscape_view (source_view )
343
340
if destination_view :
@@ -368,6 +365,12 @@ def copy_layout_information_from(self, source: "ViewSet") -> None:
368
365
if destination_view :
369
366
destination_view .copy_layout_information_from (source_view )
370
367
368
+ def _ensure_key_is_specific_and_unique (self , key : str ) -> None :
369
+ if key is None or key == "" :
370
+ raise ValueError ("A key must be specified." )
371
+ if self .get_view (key ) is not None :
372
+ raise ValueError (f"View already exists in workspace with key '{ key } '." )
373
+
371
374
def _find_system_landscape_view (
372
375
self , view : SystemLandscapeView
373
376
) -> Optional [SystemLandscapeView ]:
0 commit comments