]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/TypicalUtil.java
Sync git svn branch with SVN repository r33249.
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / typicals / TypicalUtil.java
index 9c29290a50e03e2e1da3e01c6afc591aa6b4d9ea..952cd286271560e20a712d788d5510fb65ab399a 100644 (file)
@@ -130,21 +130,21 @@ public class TypicalUtil {
         }\r
     };\r
 \r
-    public static Collection<NamedResource> toNamedResources(RequestProcessor processor, final Collection<Resource> rs) throws DatabaseException {\r
+    public static List<NamedResource> toNamedResources(RequestProcessor processor, final Collection<Resource> rs) throws DatabaseException {\r
         return toNamedResources(processor, rs, new TypicalNamingFunction());\r
     }\r
 \r
-    public static Collection<NamedResource> toNamedResources(RequestProcessor processor, final Collection<Resource> rs, final Function2<ReadGraph, Resource, String> namingFunction) throws DatabaseException {\r
-        return processor.syncRequest(new UniqueRead<Collection<NamedResource>>() {\r
+    public static List<NamedResource> toNamedResources(RequestProcessor processor, final Collection<Resource> rs, final Function2<ReadGraph, Resource, String> namingFunction) throws DatabaseException {\r
+        return processor.syncRequest(new UniqueRead<List<NamedResource>>() {\r
             @Override\r
-            public Collection<NamedResource> perform(ReadGraph graph) throws DatabaseException {\r
+            public List<NamedResource> perform(ReadGraph graph) throws DatabaseException {\r
                 return toNamedResources(graph, rs, namingFunction);\r
             }\r
         });\r
     }\r
 \r
-    public static Collection<NamedResource> toNamedResources(ReadGraph graph, Collection<Resource> rs, final Function2<ReadGraph, Resource, String> namingFunction) throws DatabaseException {\r
-        Collection<NamedResource> result = new ArrayList<NamedResource>(rs.size());\r
+    public static List<NamedResource> toNamedResources(ReadGraph graph, Collection<Resource> rs, final Function2<ReadGraph, Resource, String> namingFunction) throws DatabaseException {\r
+        List<NamedResource> result = new ArrayList<>(rs.size());\r
         for (Resource r : rs)\r
             result.add(new NamedResource(namingFunction.apply(graph, r), r));\r
         return result;\r
@@ -157,8 +157,11 @@ public class TypicalUtil {
         return s;\r
     }\r
 \r
-    public static WriteResult<Resource> instantiateTemplate(final Resource target, final NamedResource template,\r
-            final Consumer<Pair<WriteGraph, Resource>> successContinuation) {\r
+    public static WriteResult<Resource> instantiateTemplate(\r
+            Resource target,\r
+            NamedResource template,\r
+            Consumer<Pair<WriteGraph, Resource>> successContinuation)\r
+    {\r
         return new WriteResultRequest<Resource>() {\r
             @Override\r
             public Resource perform(WriteGraph graph) throws DatabaseException {\r
@@ -619,15 +622,19 @@ public class TypicalUtil {
                 // Attach the same symbol contributions to the created typical\r
                 // diagram type as are attached to the model-designated\r
                 // contribution source diagram type.\r
+                boolean clonedIndexRootContribution = false;\r
                 for (Resource symbolContributionSource : cloneSymbolContributionsFrom) {\r
                     for (Resource contribution : graph.getObjects(symbolContributionSource, DIA.HasSymbolContribution)) {\r
                         graph.claim(diagramType, DIA.HasSymbolContribution, contribution);\r
+                        clonedIndexRootContribution |= graph.isInstanceOf(contribution, DIA.IndexRootSymbolContribution);\r
                     }\r
                 }\r
 \r
-                Resource indexContribution = graph.newResource();\r
-                graph.claim(indexContribution, L0.InstanceOf, DIA.IndexRootSymbolContribution);\r
-                graph.claim(diagramType, DIA.HasSymbolContribution, indexContribution);\r
+                if (!clonedIndexRootContribution) {\r
+                    Resource indexContribution = graph.newResource();\r
+                    graph.claim(indexContribution, L0.InstanceOf, DIA.IndexRootSymbolContribution);\r
+                    graph.claim(diagramType, DIA.HasSymbolContribution, indexContribution);\r
+                }\r
 \r
                 // Add comment to change set.\r
                 CommentMetadata cm = graph.getMetadata(CommentMetadata.class);\r