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