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