1 package org.simantics.structural2.scl;
3 import gnu.trove.map.hash.THashMap;
7 import org.simantics.databoard.Bindings;
8 import org.simantics.db.ReadGraph;
9 import org.simantics.db.Resource;
10 import org.simantics.db.common.request.ResourceRead;
11 import org.simantics.db.exception.DatabaseException;
12 import org.simantics.layer0.Layer0;
13 import org.simantics.structural.stubs.StructuralResource2;
15 public class ReadComponentTypeConnectionsRequest extends ResourceRead<Map<String, Resource>> {
17 public ReadComponentTypeConnectionsRequest(Resource resource) {
22 public Map<String, Resource> perform(ReadGraph graph)
23 throws DatabaseException {
24 THashMap<String, Resource> result =
25 new THashMap<String, Resource>();
27 Layer0 L0 = Layer0.getInstance(graph);
28 StructuralResource2 STR = StructuralResource2.getInstance(graph);
29 for(Resource relation : graph.getObjects(resource, L0.DomainOf)) {
30 if(graph.isSubrelationOf(relation, STR.IsConnectedTo)) {
31 String name = graph.getRelatedValue(relation, L0.HasName, Bindings.STRING);
32 result.put(name, relation);