X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Futil%2FRuntimeEnvironmentRequest2.java;h=28d18e50772ece99c914c7069ce73ad89e3bd9e6;hp=ca8bc07cd53ab9a3b73d05a02e73d7473ae7db2a;hb=1cd631466bc35e05bc585999b2f325f148cd5629;hpb=7396956f115b87067970f690588017fc05393e7a diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/RuntimeEnvironmentRequest2.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/RuntimeEnvironmentRequest2.java index ca8bc07cd..28d18e507 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/RuntimeEnvironmentRequest2.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/util/RuntimeEnvironmentRequest2.java @@ -7,6 +7,7 @@ import org.simantics.db.Resource; import org.simantics.db.common.request.BinaryRead; import org.simantics.db.common.request.ObjectsWithType; import org.simantics.db.common.request.ParametrizedPrimitiveRead; +import org.simantics.db.common.utils.CommonDBUtils; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.internal.SimanticsInternal; import org.simantics.db.procedure.Listener; @@ -113,13 +114,24 @@ public class RuntimeEnvironmentRequest2 extends BinaryRead sclModules = graph.syncRequest(new ObjectsWithType(parameter, L0.ConsistsOf, L0.SCLModule)); - for (Resource sclModule : sclModules) - environmentSpecification.importModule(graph.getURI(sclModule), ""); + if (parameter != null) { + Collection sclModules = graph.syncRequest(new ObjectsWithType(parameter, L0.ConsistsOf, L0.SCLModule)); + for (Resource sclModule : sclModules) { + environmentSpecification.importModule(graph.getURI(sclModule), ""); + } + } else { + // `parameter` is optional and can be null for e.g. procedural user components + } - Resource mainModule = Layer0Utils.getPossibleChild(graph, parameter2, "SCLMain"); - if(mainModule != null) + Resource mainModule = CommonDBUtils.getPossibleChild(graph, parameter2, "SCLMain"); + if(mainModule != null) { environmentSpecification.importModule(graph.getURI(mainModule), ""); + for(Resource l : graph.getObjects(parameter2, L0.IsLinkedTo)) { + mainModule = CommonDBUtils.getPossibleChild(graph, l, "SCLMain"); + if(mainModule != null) + environmentSpecification.importModule(graph.getURI(mainModule), ""); + } + } return graph.syncRequest(new ParametrizedPrimitiveRead(environmentSpecification) {