1 package org.simantics.issues.common;
\r
3 import gnu.trove.set.hash.THashSet;
\r
5 import java.util.Collection;
\r
6 import java.util.Collections;
\r
7 import java.util.Set;
\r
9 import org.simantics.db.Issue;
\r
10 import org.simantics.db.ReadGraph;
\r
11 import org.simantics.db.Resource;
\r
12 import org.simantics.db.common.request.ResourceRead2;
\r
13 import org.simantics.db.common.utils.ListUtils;
\r
14 import org.simantics.db.exception.DatabaseException;
\r
15 import org.simantics.issues.ontology.IssueResource;
\r
17 public class BatchIssueDescriptions extends ResourceRead2<Set<Issue>> {
\r
19 public BatchIssueDescriptions(Resource source, Resource context) {
\r
20 super(source, context);
\r
24 public Set<Issue> perform(ReadGraph graph) throws DatabaseException {
\r
25 IssueResource ISSUE = IssueResource.getInstance(graph);
\r
26 Collection<Resource> issues = graph.syncRequest(new ManagedIssues(resource));
\r
27 if (issues.isEmpty())
\r
28 return Collections.emptySet();
\r
29 Set<Issue> result = new THashSet<Issue>(issues.size());
\r
30 for(Resource issue : issues) {
\r
31 Resource list = graph.getSingleObject(issue, ISSUE.Issue_HasContexts);
\r
32 if(ListUtils.toList(graph, list).contains(resource2)) {
\r
33 result.add(graph.sync(new StandardIssueDescription(issue)));
\r