X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Ftypicals%2FTypicalUtil.java;h=952cd286271560e20a712d788d5510fb65ab399a;hb=80d69fc3f7a2e14c5b9e44a601ba15b0434454a8;hp=9c29290a50e03e2e1da3e01c6afc591aa6b4d9ea;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/TypicalUtil.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/TypicalUtil.java index 9c29290a5..952cd2862 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/TypicalUtil.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/TypicalUtil.java @@ -130,21 +130,21 @@ public class TypicalUtil { } }; - public static Collection toNamedResources(RequestProcessor processor, final Collection rs) throws DatabaseException { + public static List toNamedResources(RequestProcessor processor, final Collection rs) throws DatabaseException { return toNamedResources(processor, rs, new TypicalNamingFunction()); } - public static Collection toNamedResources(RequestProcessor processor, final Collection rs, final Function2 namingFunction) throws DatabaseException { - return processor.syncRequest(new UniqueRead>() { + public static List toNamedResources(RequestProcessor processor, final Collection rs, final Function2 namingFunction) throws DatabaseException { + return processor.syncRequest(new UniqueRead>() { @Override - public Collection perform(ReadGraph graph) throws DatabaseException { + public List perform(ReadGraph graph) throws DatabaseException { return toNamedResources(graph, rs, namingFunction); } }); } - public static Collection toNamedResources(ReadGraph graph, Collection rs, final Function2 namingFunction) throws DatabaseException { - Collection result = new ArrayList(rs.size()); + public static List toNamedResources(ReadGraph graph, Collection rs, final Function2 namingFunction) throws DatabaseException { + List result = new ArrayList<>(rs.size()); for (Resource r : rs) result.add(new NamedResource(namingFunction.apply(graph, r), r)); return result; @@ -157,8 +157,11 @@ public class TypicalUtil { return s; } - public static WriteResult instantiateTemplate(final Resource target, final NamedResource template, - final Consumer> successContinuation) { + public static WriteResult instantiateTemplate( + Resource target, + NamedResource template, + Consumer> successContinuation) + { return new WriteResultRequest() { @Override public Resource perform(WriteGraph graph) throws DatabaseException { @@ -619,15 +622,19 @@ public class TypicalUtil { // Attach the same symbol contributions to the created typical // diagram type as are attached to the model-designated // contribution source diagram type. + boolean clonedIndexRootContribution = false; for (Resource symbolContributionSource : cloneSymbolContributionsFrom) { for (Resource contribution : graph.getObjects(symbolContributionSource, DIA.HasSymbolContribution)) { graph.claim(diagramType, DIA.HasSymbolContribution, contribution); + clonedIndexRootContribution |= graph.isInstanceOf(contribution, DIA.IndexRootSymbolContribution); } } - Resource indexContribution = graph.newResource(); - graph.claim(indexContribution, L0.InstanceOf, DIA.IndexRootSymbolContribution); - graph.claim(diagramType, DIA.HasSymbolContribution, indexContribution); + if (!clonedIndexRootContribution) { + Resource indexContribution = graph.newResource(); + graph.claim(indexContribution, L0.InstanceOf, DIA.IndexRootSymbolContribution); + graph.claim(diagramType, DIA.HasSymbolContribution, indexContribution); + } // Add comment to change set. CommentMetadata cm = graph.getMetadata(CommentMetadata.class);