diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2014-12-05 14:17:15 +0100 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2014-12-05 14:17:15 +0100 |
commit | 2008a6e3976a74c31747d99f41d38a8aef72c569 (patch) | |
tree | 78559914042846204276ecafc5063a72e580f93c /grc/base/Connection.py | |
parent | 2c9079afda99349a8a5914c15d55d3d86a50eaca (diff) |
grc: add multiple_sources flag to domain.dtd
Diffstat (limited to 'grc/base/Connection.py')
-rw-r--r-- | grc/base/Connection.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/grc/base/Connection.py b/grc/base/Connection.py index abe8b4fc97..3a2de5b9a5 100644 --- a/grc/base/Connection.py +++ b/grc/base/Connection.py @@ -85,14 +85,24 @@ class Connection(Element): source_domain = self.get_source().get_domain() sink_domain = self.get_sink().get_domain() if (source_domain, sink_domain) not in platform.get_connection_templates(): - self.add_error_message('No connection known for domains "%s", "%s"' % (source_domain, sink_domain)) - - if (source_domain in platform.get_domains() and + self.add_error_message('No connection known for domains "%s", "%s"' + % (source_domain, sink_domain)) + too_many_other_sinks = ( + source_domain in platform.get_domains() and not platform.get_domain(key=source_domain)['multiple_sinks'] and - len(self.get_source().get_connections()) > 1 - ): - self.add_error_message('Source domain "%s" can have only one downstream block' % source_domain) - + len(self.get_source().get_enabled_connections()) > 1 + ) + too_many_other_sources = ( + sink_domain in platform.get_domains() and + not platform.get_domain(key=sink_domain)['multiple_sources'] and + len(self.get_sink().get_enabled_connections()) > 1 + ) + if too_many_other_sinks: + self.add_error_message( + 'Domain "%s" can have only one downstream block' % source_domain) + if too_many_other_sources: + self.add_error_message( + 'Domain "%s" can have only one upstream block' % sink_domain) def get_enabled(self): """ |