]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.structural2/src/org/simantics/structural2/scl/ReadComponentTypeConnectionsRequest.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.structural2 / src / org / simantics / structural2 / scl / ReadComponentTypeConnectionsRequest.java
1 package org.simantics.structural2.scl;\r
2 \r
3 import gnu.trove.map.hash.THashMap;\r
4 \r
5 import java.util.Map;\r
6 \r
7 import org.simantics.databoard.Bindings;\r
8 import org.simantics.db.ReadGraph;\r
9 import org.simantics.db.Resource;\r
10 import org.simantics.db.common.request.ResourceRead;\r
11 import org.simantics.db.exception.DatabaseException;\r
12 import org.simantics.layer0.Layer0;\r
13 import org.simantics.structural.stubs.StructuralResource2;\r
14 \r
15 public class ReadComponentTypeConnectionsRequest extends ResourceRead<Map<String, Resource>> {\r
16 \r
17         public ReadComponentTypeConnectionsRequest(Resource resource) {\r
18                 super(resource);\r
19         }\r
20 \r
21         @Override\r
22         public Map<String, Resource> perform(ReadGraph graph)\r
23                         throws DatabaseException {\r
24                 THashMap<String, Resource> result = \r
25                                 new THashMap<String, Resource>();\r
26                 \r
27                 Layer0 L0 = Layer0.getInstance(graph);\r
28                 StructuralResource2 STR = StructuralResource2.getInstance(graph);\r
29                 for(Resource relation : graph.getObjects(resource, L0.DomainOf)) {\r
30                         if(graph.isSubrelationOf(relation, STR.IsConnectedTo)) {\r
31                                 String name = graph.getRelatedValue(relation, L0.HasName, Bindings.STRING);                             \r
32                                 result.put(name, relation);\r
33                         }\r
34                 }\r
35                 \r
36                 return result;\r
37         }\r
38 \r
39 }\r