1 package org.simantics.modeling.utils;
3 import gnu.trove.map.hash.THashMap;
5 import org.simantics.db.Resource;
6 import org.simantics.db.WriteGraph;
7 import org.simantics.db.exception.DatabaseException;
8 import org.simantics.db.exception.RuntimeDatabaseException;
9 import org.simantics.layer0.Layer0;
10 import org.simantics.scl.runtime.SCLContext;
11 import org.simantics.scl.runtime.function.FunctionImpl1;
12 import org.simantics.structural.stubs.StructuralResource2;
14 public class JoinMap extends FunctionImpl1<Object, Resource> {
16 THashMap<Object,Resource> map = new THashMap<Object,Resource>();
19 public Resource apply(Object key) {
20 Resource join = map.get(key);
23 WriteGraph g = (WriteGraph)SCLContext.getCurrent().get("graph");
24 Layer0 L0 = Layer0.getInstance(g);
25 StructuralResource2 STR = StructuralResource2.getInstance(g);
26 join = g.newResource();
27 g.claim(join, L0.InstanceOf, STR.ConnectionJoin);
29 } catch(DatabaseException e) {
30 throw new RuntimeDatabaseException(e);