]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling/src/org/simantics/modeling/subscription/ModelContextsRequest.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / subscription / ModelContextsRequest.java
1 package org.simantics.modeling.subscription;\r
2 \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
11 \r
12 /**\r
13  * @author Tuukka Lehtonen\r
14  * @since 1.18.1\r
15  */\r
16 public class ModelContextsRequest extends ResourceRead<ModelContexts> {\r
17 \r
18     public ModelContextsRequest(Resource model) {\r
19         super(model);\r
20     }\r
21 \r
22     @Override\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
32    }\r
33 \r
34 }