]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.structural2/src/org/simantics/structural2/scl/ReadComponentTypeConnectionsRequest.java
Merge "Remove unnecessary getComparableKey from HashMapBinding"
[simantics/platform.git] / bundles / org.simantics.structural2 / src / org / simantics / structural2 / scl / ReadComponentTypeConnectionsRequest.java
1 package org.simantics.structural2.scl;
2
3 import gnu.trove.map.hash.THashMap;
4
5 import java.util.Map;
6
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;
14
15 public class ReadComponentTypeConnectionsRequest extends ResourceRead<Map<String, Resource>> {
16
17         public ReadComponentTypeConnectionsRequest(Resource resource) {
18                 super(resource);
19         }
20
21         @Override
22         public Map<String, Resource> perform(ReadGraph graph)
23                         throws DatabaseException {
24                 THashMap<String, Resource> result = 
25                                 new THashMap<String, Resource>();
26                 
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);
33                         }
34                 }
35                 
36                 return result;
37         }
38
39 }