1 package org.simantics.issues.common;
\r
3 import java.util.Collections;
\r
4 import java.util.List;
\r
6 import org.simantics.db.Issue;
\r
7 import org.simantics.db.ReadGraph;
\r
8 import org.simantics.db.Resource;
\r
9 import org.simantics.db.common.issue.AnonymousIssue;
\r
10 import org.simantics.db.common.issue.StandardIssue;
\r
11 import org.simantics.db.common.request.ResourceRead;
\r
12 import org.simantics.db.common.utils.ListUtils;
\r
13 import org.simantics.db.exception.DatabaseException;
\r
14 import org.simantics.issues.ontology.IssueResource;
\r
16 public class StandardIssueDescription extends ResourceRead<Issue> {
\r
18 public StandardIssueDescription(Resource issue) {
\r
23 public Issue perform(ReadGraph graph) throws DatabaseException {
\r
25 IssueResource ISSUE = IssueResource.getInstance(graph);
\r
26 Resource type = graph.getPossibleType(resource, ISSUE.Issue);
\r
27 if(type == null) return null;
\r
28 Resource list = graph.getPossibleObject(resource, ISSUE.Issue_HasContexts);
\r
31 if(graph.isInheritedFrom(type, ISSUE.Sources_DependencyTracker_AnonymousIssue))
\r
32 return new AnonymousIssue(type, Collections.singletonList(resource));
\r
34 return new StandardIssue(type, Collections.singletonList(resource));
\r
38 List<Resource> contexts = ListUtils.toPossibleList(graph, list);
\r
39 if(contexts == null) return null;
\r
41 if(graph.isInheritedFrom(type, ISSUE.Sources_DependencyTracker_AnonymousIssue))
\r
42 return new AnonymousIssue(type, contexts);
\r
44 return new StandardIssue(type, contexts);
\r