--- /dev/null
+package org.simantics.db.common.request;\r
+\r
+import java.util.Collections;\r
+\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.common.utils.CommonDBUtils;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.layer0.Layer0;\r
+\r
+public class PossibleOwner extends ResourceRead<Resource> {\r
+\r
+ public PossibleOwner(Resource resource) {\r
+ super(resource);\r
+ }\r
+\r
+ @Override\r
+ public Resource perform(ReadGraph graph) throws DatabaseException {\r
+ Layer0 L0 = Layer0.getInstance(graph);\r
+ Resource directOwner = graph.getPossibleObject(resource, L0.IsOwnedBy);\r
+ if(directOwner != null) return directOwner;\r
+ return CommonDBUtils.getNearestOwner(graph, Collections.singleton(resource));\r
+ }\r
+ \r
+}
\ No newline at end of file