1 package org.simantics.db.common.request;
\r
3 import java.util.Collections;
\r
5 import org.simantics.db.ReadGraph;
\r
6 import org.simantics.db.Resource;
\r
7 import org.simantics.db.common.utils.CommonDBUtils;
\r
8 import org.simantics.db.exception.DatabaseException;
\r
9 import org.simantics.layer0.Layer0;
\r
11 public class PossibleOwner extends ResourceRead<Resource> {
\r
13 public PossibleOwner(Resource resource) {
\r
18 public Resource perform(ReadGraph graph) throws DatabaseException {
\r
19 Layer0 L0 = Layer0.getInstance(graph);
\r
20 Resource directOwner = graph.getPossibleObject(resource, L0.IsOwnedBy);
\r
21 if(directOwner != null) return directOwner;
\r
22 return CommonDBUtils.getNearestOwner(graph, Collections.singleton(resource));
\r