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