]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/ClassificationsRequest.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / request / ClassificationsRequest.java
1 package org.simantics.db.layer0.request;\r
2 \r
3 import java.util.Collection;\r
4 import java.util.HashSet;\r
5 import java.util.Set;\r
6 \r
7 import org.simantics.db.ReadGraph;\r
8 import org.simantics.db.Resource;\r
9 import org.simantics.db.common.request.UnaryRead;\r
10 import org.simantics.db.exception.DatabaseException;\r
11 \r
12 public class ClassificationsRequest extends UnaryRead<Collection<Resource>, Set<String>> {\r
13 \r
14         public ClassificationsRequest(Collection<Resource> principalTypes) {\r
15                 super(principalTypes);\r
16         }\r
17 \r
18         @Override\r
19         public Set<String> perform(ReadGraph graph) throws DatabaseException {\r
20         Set<String> result = new HashSet<String>(parameter.size());\r
21         Set<Resource> allTypes = new HashSet<Resource>(parameter);\r
22         for(Resource principalType : parameter) allTypes.addAll(graph.getSupertypes(principalType));\r
23         for(Resource type : allTypes) {\r
24                 String uri = graph.getPossibleURI(type);\r
25                 if(uri != null) result.add(uri);\r
26         }\r
27         return result;\r
28         }\r
29 \r
30 }\r