]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/symbolEditor/PopulateTerminal.java
Sync git svn branch with SVN repository r33144.
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / symbolEditor / PopulateTerminal.java
index ddcb7ff6725ede5bac864d6e44df00bfc47b2697..b028ec2d2786f0815bf328a8d47e476b223b082a 100644 (file)
@@ -52,8 +52,15 @@ public class PopulateTerminal {
             if(name != null)\r
                 g.claimLiteral(terminalRelation, L0.HasName, name);\r
 \r
-            for(Resource type : g.getObjects(relation, MOD.ImpliesDiagramConnectionRelationType))\r
-                g.claim(terminalRelation, L0.InstanceOf, type);\r
+            boolean interfaceGeneratesComponentExternally = !g.hasStatement(relation, MOD.GeneratesConnectionComponentInternally);\r
+            for(Resource type : g.getObjects(relation, MOD.ImpliesDiagramConnectionRelationType)) {\r
+                // #6636: Only instantiate type if it does not generate a component\r
+                // when interface is marked to generate component internally.\r
+                boolean shouldInstantiate = interfaceGeneratesComponentExternally || \r
+                        g.getAssertedObjects(type, MOD.DiagramConnectionRelationToComponentType).isEmpty();\r
+                if (shouldInstantiate)\r
+                    g.claim(terminalRelation, L0.InstanceOf, type);\r
+            }\r
 \r
             StructuralUtils.addConnectionPoint(g, definedElement, terminalRelation);\r
         }\r