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