1 package org.simantics.db.layer0.request;
\r
3 import java.util.Collection;
\r
5 import org.simantics.db.ReadGraph;
\r
6 import org.simantics.db.Resource;
\r
7 import org.simantics.db.common.request.ResourceRead;
\r
8 import org.simantics.db.common.utils.NameUtils;
\r
9 import org.simantics.db.exception.DatabaseException;
\r
10 import org.simantics.db.exception.NoSingleResultException;
\r
13 * Returns the active model or null if no single active model is available.
\r
15 public class SingleActiveModel extends ResourceRead<Resource> {
\r
17 public SingleActiveModel(Resource project) {
\r
22 public Resource perform(ReadGraph graph) throws DatabaseException {
\r
23 Collection<Resource> actives = graph.syncRequest(new ActiveModels(resource));
\r
24 if (actives.size() == 1)
\r
25 return actives.iterator().next();
\r
27 if (actives.size() == 0)
\r
28 throw new NoSingleResultException("There are no active models.");
\r
30 throw new NoSingleResultException("There are many active models: " + NameUtils.getSafeName(graph, actives));
\r