@@ -107,49 +107,37 @@ def __init__(
107107 @property
108108 def system_landscape_views (self ) -> Iterable [SystemLandscapeView ]:
109109 """Return the SystemLandscapeViews in this ViewSet."""
110- return (
111- view
112- for view in self ._views .values ()
113- if isinstance (view , SystemLandscapeView )
114- )
115-
110+ return self ._get_typed_views (SystemLandscapeView )
111+
116112 @property
117113 def system_context_views (self ) -> Iterable [SystemContextView ]:
118114 """Return the SystemContextViews in this ViewSet."""
119- return (
120- view for view in self ._views .values () if isinstance (view , SystemContextView )
121- )
115+ return self ._get_typed_views (SystemContextView )
122116
123117 @property
124118 def container_views (self ) -> Iterable [ContainerView ]:
125119 """Return the ContainerViews in this ViewSet."""
126- return (
127- view for view in self ._views .values () if isinstance (view , ContainerView )
128- )
120+ return self ._get_typed_views (ContainerView )
129121
130122 @property
131123 def component_views (self ) -> Iterable [ComponentView ]:
132124 """Return the CompoentViews in this ViewSet."""
133- return (
134- view for view in self ._views .values () if isinstance (view , ComponentView )
135- )
125+ return self ._get_typed_views (ComponentView )
136126
137127 @property
138128 def deployment_views (self ) -> Iterable [DeploymentView ]:
139129 """Return the DeploymentViews in this ViewSet."""
140- return (
141- view for view in self ._views .values () if isinstance (view , DeploymentView )
142- )
130+ return self ._get_typed_views (DeploymentView )
143131
144132 @property
145133 def dynamic_views (self ) -> Iterable [DynamicView ]:
146134 """Return the DynamicViews in this ViewSet."""
147- return ( view for view in self ._views . values () if isinstance ( view , DynamicView ) )
135+ return self ._get_typed_views ( DynamicView )
148136
149137 @property
150138 def filtered_views (self ) -> Iterable [FilteredView ]:
151139 """Return the FilteredViews in this ViewSet."""
152- return ( view for view in self ._views . values () if isinstance ( view , FilteredView ) )
140+ return self ._get_typed_views ( FilteredView )
153141
154142 @property
155143 def views (self ) -> Iterable [AbstractView ]:
@@ -390,3 +378,10 @@ def _ensure_key_is_specific_and_unique(self, key: str) -> None:
390378 raise ValueError ("A key must be specified." )
391379 if key in self ._views :
392380 raise ValueError (f"View already exists in workspace with key '{ key } '." )
381+
382+ def _get_typed_views (self , klass : "T" ) -> Iterable ["T" ]:
383+ return (
384+ view
385+ for view in self ._views .values ()
386+ if isinstance (view , klass )
387+ )
0 commit comments