]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.graph/src/org/simantics/graph/store/StatementStore.java
Small improvements to statement collision reporting.
[simantics/platform.git] / bundles / org.simantics.graph / src / org / simantics / graph / store / StatementStore.java
index cc82975c8191fe2cd980c9eaf3963fa47e49939c..02dfddde81085d06727089863185c4e10345d54f 100644 (file)
@@ -319,13 +319,23 @@ public class StatementStore implements IStore {
            public boolean execute(int predicate, TIntArrayList objects) {\r
                if(objects.size() > 1) {\r
                    objects.sort();\r
-                   int oldObject = objects.get(0); \r
+                   int oldObject = objects.get(0);\r
+                   int collisionCount = 1;\r
                    for(int i=1;i<objects.size();++i) {\r
                        int curObject = objects.get(i);\r
-                       if(curObject == oldObject)\r
-                           collisions.add(new StatementCollision(subject, predicate, curObject));\r
-                       oldObject = curObject;\r
+                       if(curObject == oldObject) {\r
+                           ++collisionCount;\r
+                       }\r
+                       else {\r
+                           if(collisionCount > 1) {\r
+                               collisions.add(new StatementCollision(subject, predicate, oldObject, collisionCount));\r
+                               collisionCount = 1;\r
+                           }\r
+                           oldObject = curObject;\r
+                       }\r
                    }\r
+                if(collisionCount > 1)\r
+                    collisions.add(new StatementCollision(subject, predicate, oldObject, collisionCount));\r
                }\r
                return true;\r
            }\r