X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fsubscription%2FModelContextsRequest.java;fp=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fsubscription%2FModelContextsRequest.java;h=f92f4ca79b493eb3b2b37775167f5ff3e597f832;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/subscription/ModelContextsRequest.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/subscription/ModelContextsRequest.java new file mode 100644 index 000000000..f92f4ca79 --- /dev/null +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/subscription/ModelContextsRequest.java @@ -0,0 +1,34 @@ +package org.simantics.modeling.subscription; + +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.common.request.ResourceRead; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.request.PossibleActiveExperiment; +import org.simantics.db.layer0.variable.Variable; +import org.simantics.db.layer0.variable.Variables; +import org.simantics.simulation.ontology.SimulationResource; + +/** + * @author Tuukka Lehtonen + * @since 1.18.1 + */ +public class ModelContextsRequest extends ResourceRead { + + public ModelContextsRequest(Resource model) { + super(model); + } + + @Override + public ModelContexts perform(ReadGraph graph) throws DatabaseException { + SimulationResource SIMU = SimulationResource.getInstance(graph); + Resource configurationResource = graph.getPossibleObject(resource, SIMU.HasConfiguration); + Variable configurationContext = configurationResource != null ? Variables.getPossibleVariable(graph, configurationResource) : null; + Resource run = graph.sync(new PossibleActiveExperiment(resource)); + Variable experimentContext = run != null ? Variables.getPossibleVariable(graph, run) : null; + String configurationContextURI = configurationContext != null ? configurationContext.getURI(graph) : null; + String experimentContextURI = experimentContext != null ? experimentContext.getURI(graph) : null; + return new ModelContexts(resource, configurationContext, experimentContext, configurationContextURI, experimentContextURI); + } + +} \ No newline at end of file