--- /dev/null
+package org.simantics.graph.compiler.internal.procedures;\r
+\r
+import gnu.trove.procedure.TObjectProcedure;\r
+\r
+import org.simantics.graph.query.Paths;\r
+import org.simantics.graph.store.GraphStore;\r
+import org.simantics.graph.store.IdentityStore;\r
+import org.simantics.graph.store.IdentityStore.ConsistsOf;\r
+import org.simantics.graph.store.StatementStore;\r
+\r
+public class AddConsistsOf implements Runnable {\r
+\r
+ GraphStore store;\r
+ Paths paths;\r
+ \r
+ public AddConsistsOf(Paths paths, GraphStore store) {\r
+ this.paths = paths;\r
+ this.store = store;\r
+ }\r
+\r
+ @Override\r
+ public void run() {\r
+ final IdentityStore identities = store.identities;\r
+ final int consistsOf = identities.createPathToId(paths.ConsistsOf);\r
+ final StatementStore statements = store.statements;\r
+ identities.forEachChild(new TObjectProcedure<IdentityStore.ConsistsOf>() {\r
+ \r
+ @Override\r
+ public boolean execute(ConsistsOf co) {\r
+ if(identities.isNewResource(co.child))\r
+ statements.add(co.parent, consistsOf, co.child);\r
+ return true;\r
+ }\r
+ });\r
+ } \r
+\r
+}\r