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