X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.issues.common%2Fsrc%2Forg%2Fsimantics%2Fissues%2Fcommon%2FAll.java;h=d2120cd78345d7fdccfcc7dcbb76d7e6d125c914;hp=6ff625c0bb4ffc9f9535340da6f640181f5af8b4;hb=c26409b1caf2f1e560d37c5befd11b442399c3fe;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07 diff --git a/bundles/org.simantics.issues.common/src/org/simantics/issues/common/All.java b/bundles/org.simantics.issues.common/src/org/simantics/issues/common/All.java index 6ff625c0b..d2120cd78 100644 --- a/bundles/org.simantics.issues.common/src/org/simantics/issues/common/All.java +++ b/bundles/org.simantics.issues.common/src/org/simantics/issues/common/All.java @@ -1,11 +1,13 @@ package org.simantics.issues.common; +import java.util.Collections; import java.util.List; import org.simantics.databoard.Bindings; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.common.request.PossibleIndexRoot; +import org.simantics.db.common.utils.ListUtils; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.variable.Variable; import org.simantics.db.layer0.variable.Variables; @@ -76,5 +78,21 @@ public class All { return IssueUtils.pathString(uri, modelURI.length()+1); } } - + + @SCLValue(type = "ReadGraph -> Resource -> a -> [Resource]") + public static List standardIssueContexts(ReadGraph graph, Resource converter, Object property) throws DatabaseException { + if (property instanceof Variable) { + return IssueUtils.getContextsForProperty(graph, (Variable) property); + } else if (property instanceof Resource) { + Resource issue = (Resource) property; + IssueResource ISSUE = IssueResource.getInstance(graph); + Resource list = graph.getPossibleObject(issue, ISSUE.Issue_HasContexts); + if(list != null) + return ListUtils.toList(graph, list); + else + return Collections.emptyList(); + } + throw new IllegalArgumentException("Unsupported property type: " + property); + } + }