@@ -685,7 +685,7 @@ def __init__(
685685 if args :
686686 element = args [0 ]
687687 else :
688- element = kwargs .pop ("element" , Element ( "invalid" ))
688+ element = kwargs .pop ("element" , EmptyElement ( ))
689689
690690 self .target = element .name
691691 self .element = element
@@ -1016,7 +1016,7 @@ def seq(self):
10161016 participants .append (
10171017 'database {0} as "{1}"' .format (e ._uniq_name (), e .display_name ())
10181018 )
1019- elif not isinstance (e , Dataflow ) and not isinstance ( e , Boundary ):
1019+ elif not isinstance (e , ( Dataflow , Boundary , EmptyElement ) ):
10201020 participants .append (
10211021 'entity {0} as "{1}"' .format (e ._uniq_name (), e .display_name ())
10221022 )
@@ -1583,6 +1583,18 @@ def _safeset(self, attr, value):
15831583 pass
15841584
15851585
1586+ class EmptyElement (Element ):
1587+ """An empty element to avoid generation of elements for standalone Finding"""
1588+
1589+ def __init__ (self ):
1590+ super ().__init__ ("AutoGenerated" , description = "Autogenerated element for Finding" )
1591+ # This type is used as a part of manual created Finding
1592+ # and is not a component of data flows described by users
1593+ # That why it has not be drawn on diagrams
1594+ # To do this just mark it as already drawn
1595+ self ._is_drawn = True # Prevent drawing on diagrams
1596+
1597+
15861598class Asset (Element ):
15871599 """An asset with outgoing or incoming dataflows"""
15881600
0 commit comments