X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2FsymbolEditor%2FPopulateTerminal.java;h=b028ec2d2786f0815bf328a8d47e476b223b082a;hp=ddcb7ff6725ede5bac864d6e44df00bfc47b2697;hb=96bb7ef9cbe42d82eb58306;hpb=ae5bb63c5c88f6569518fed2a24df86fbd0570ff diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/symbolEditor/PopulateTerminal.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/symbolEditor/PopulateTerminal.java index ddcb7ff67..b028ec2d2 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/symbolEditor/PopulateTerminal.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/symbolEditor/PopulateTerminal.java @@ -52,8 +52,15 @@ public class PopulateTerminal { if(name != null) g.claimLiteral(terminalRelation, L0.HasName, name); - for(Resource type : g.getObjects(relation, MOD.ImpliesDiagramConnectionRelationType)) - g.claim(terminalRelation, L0.InstanceOf, type); + boolean interfaceGeneratesComponentExternally = !g.hasStatement(relation, MOD.GeneratesConnectionComponentInternally); + for(Resource type : g.getObjects(relation, MOD.ImpliesDiagramConnectionRelationType)) { + // #6636: Only instantiate type if it does not generate a component + // when interface is marked to generate component internally. + boolean shouldInstantiate = interfaceGeneratesComponentExternally || + g.getAssertedObjects(type, MOD.DiagramConnectionRelationToComponentType).isEmpty(); + if (shouldInstantiate) + g.claim(terminalRelation, L0.InstanceOf, type); + } StructuralUtils.addConnectionPoint(g, definedElement, terminalRelation); }