1 package org.simantics.modeling.subscription;
\r
3 import org.simantics.db.ReadGraph;
\r
4 import org.simantics.db.Resource;
\r
5 import org.simantics.db.common.request.ResourceRead;
\r
6 import org.simantics.db.exception.DatabaseException;
\r
7 import org.simantics.db.layer0.request.PossibleActiveExperiment;
\r
8 import org.simantics.db.layer0.variable.Variable;
\r
9 import org.simantics.db.layer0.variable.Variables;
\r
10 import org.simantics.simulation.ontology.SimulationResource;
\r
13 * @author Tuukka Lehtonen
\r
16 public class ModelContextsRequest extends ResourceRead<ModelContexts> {
\r
18 public ModelContextsRequest(Resource model) {
\r
23 public ModelContexts perform(ReadGraph graph) throws DatabaseException {
\r
24 SimulationResource SIMU = SimulationResource.getInstance(graph);
\r
25 Resource configurationResource = graph.getPossibleObject(resource, SIMU.HasConfiguration);
\r
26 Variable configurationContext = configurationResource != null ? Variables.getPossibleVariable(graph, configurationResource) : null;
\r
27 Resource run = graph.sync(new PossibleActiveExperiment(resource));
\r
28 Variable experimentContext = run != null ? Variables.getPossibleVariable(graph, run) : null;
\r
29 String configurationContextURI = configurationContext != null ? configurationContext.getURI(graph) : null;
\r
30 String experimentContextURI = experimentContext != null ? experimentContext.getURI(graph) : null;
\r
31 return new ModelContexts(resource, configurationContext, experimentContext, configurationContextURI, experimentContextURI);
\r