]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.common/src/org/simantics/db/common/request/DeepObjectsWithType.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.db.common / src / org / simantics / db / common / request / DeepObjectsWithType.java
1 package org.simantics.db.common.request;\r
2 \r
3 import java.util.Collection;\r
4 import java.util.HashSet;\r
5 \r
6 import org.simantics.db.ReadGraph;\r
7 import org.simantics.db.Resource;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 \r
10 public class DeepObjectsWithType extends ResourceRead3<Collection<Resource>> {\r
11 \r
12         public DeepObjectsWithType(Resource subject, Resource subrelationOf, Resource instanceOf) {\r
13         super(subject, subrelationOf, instanceOf);\r
14     }\r
15 \r
16         @Override\r
17         public Collection<Resource> perform(ReadGraph graph) throws DatabaseException {\r
18                 HashSet<Resource> result = new HashSet<Resource>();\r
19                 for(Resource object : graph.sync(new ObjectsWithType(resource, resource2, resource3))) {\r
20                         result.add(object);\r
21                         result.addAll(graph.sync(new DeepObjectsWithType(object, resource2, resource3)));\r
22                 }\r
23                 return result;\r
24         }\r
25 \r
26 }\r