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