package org.simantics.graph.compiler.internal.templates; import java.util.Collection; import org.simantics.graph.compiler.ExternalFileLoader; import org.simantics.graph.compiler.internal.ltk.Problem; import org.simantics.graph.query.IGraph; import org.simantics.graph.query.Paths; import org.simantics.graph.store.GraphStore; public enum OrderedSetTemplate implements ITemplate { INSTANCE; @Override public void apply(IGraph graph, GraphStore store, int[] parameters, ExternalFileLoader fileLoader, Collection problems) { createList(graph.getPaths(), store, parameters); } public static void createList(Paths paths, GraphStore store, int[] parameters) { int InverseOf = store.identities.createPathToId(paths.InverseOf); int SubrelationOf = store.identities.createPathToId(paths.SubrelationOf); int HasNext = store.identities.createPathToId(paths.HasNext); int HasPrevious = store.identities.createPathToId(paths.HasPrevious); int relation = parameters[0]; store.statements.add(relation, SubrelationOf, HasNext); int inverse = store.identities.newResource(); store.statements.add(inverse, SubrelationOf, HasPrevious); store.statements.add(relation, InverseOf, inverse); store.identities.defineChild(relation, "Inverse", inverse); for(int i=1;i