From: Tuukka Lehtonen Date: Thu, 8 Feb 2018 09:50:52 +0000 (+0200) Subject: Merge "Query control functions into Simantics/DB" X-Git-Tag: v1.43.0~136^2~597 X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=commitdiff_plain;h=e02b565cb604469a1dad9c5143e5f1664fec5ebf;hp=98215de158f07c580afabbba0a28cb0d03154b12 Merge "Query control functions into Simantics/DB" --- diff --git a/bundles/org.simantics.modeling.tests/pom.xml b/bundles/org.simantics.modeling.tests/pom.xml new file mode 100644 index 000000000..917d1855a --- /dev/null +++ b/bundles/org.simantics.modeling.tests/pom.xml @@ -0,0 +1,17 @@ + + 4.0.0 + + org.simantics + org.simantics.modeling.tests + 1.0.0-SNAPSHOT + eclipse-plugin + + + org.simantics + org.simantics.root.bundles + 1.0.0-SNAPSHOT + + + diff --git a/bundles/org.simantics.modeling.tests/src/org/simantics/modeling/tests/cases/ModelingCommandSequenceTest.java b/bundles/org.simantics.modeling.tests/src/org/simantics/modeling/tests/cases/ModelingCommandSequenceTest.java index 7b8638018..398e37012 100644 --- a/bundles/org.simantics.modeling.tests/src/org/simantics/modeling/tests/cases/ModelingCommandSequenceTest.java +++ b/bundles/org.simantics.modeling.tests/src/org/simantics/modeling/tests/cases/ModelingCommandSequenceTest.java @@ -11,7 +11,7 @@ import org.simantics.modeling.tests.commands.WaitActiveExperiment; import org.simantics.modeling.tests.commands.WaitMapping; import org.simantics.modeling.tests.commands.WriteHeapDump; -public class ModelingCommandSequenceTest extends CommandSequenceTest { +public abstract class ModelingCommandSequenceTest extends CommandSequenceTest { protected WaitActiveExperiment waitExperiment = new WaitActiveExperiment(); protected WaitMapping waitMapping = new WaitMapping(); diff --git a/bundles/org.simantics.modeling/scl/Simantics/SharedOntologies.scl b/bundles/org.simantics.modeling/scl/Simantics/SharedOntologies.scl index 6b365d04a..212a4fbaf 100644 --- a/bundles/org.simantics.modeling/scl/Simantics/SharedOntologies.scl +++ b/bundles/org.simantics.modeling/scl/Simantics/SharedOntologies.scl @@ -129,6 +129,7 @@ querySharedOntologyType dummy = do importJava "org.simantics.modeling.ModelingUtils" where importSharedOntologyWithUI :: Variable -> () importSharedOntology :: String -> () + importSharedOntology2 :: String -> [Resource] createSharedOntologyWithUI :: Resource -> () unlinkSharedOntologyWithUI :: Variable -> [Resource] -> () createNewVersionWithUI :: Resource -> () diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/ModelingUtils.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/ModelingUtils.java index a43220f06..2053a8fe3 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/ModelingUtils.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/ModelingUtils.java @@ -100,6 +100,7 @@ import org.simantics.db.layer0.adapter.impl.ImportAdvisorFactory; import org.simantics.db.layer0.genericrelation.DependenciesRelation.DependencyChangesRequest; import org.simantics.db.layer0.genericrelation.DependencyChanges; import org.simantics.db.layer0.genericrelation.IndexedRelations; +import org.simantics.db.layer0.migration.MigratedImportResult; import org.simantics.db.layer0.migration.MigrationUtils; import org.simantics.db.layer0.request.ActivateModel; import org.simantics.db.layer0.request.ActiveModels; @@ -1450,18 +1451,27 @@ public class ModelingUtils { } - public static void importSharedOntology(String fileName) throws Exception { + public static MigratedImportResult importSharedOntologyWithResult(String fileName) throws Exception { try { DataContainer dc = DataContainers.readFile(new File(fileName)); TransferableGraph1 tg = (TransferableGraph1)dc.content.getValue(TransferableGraph1.BINDING); Variant draftStatus = dc.metadata.get(DraftStatusBean.EXTENSION_KEY); - MigrationUtils.importSharedOntology(Simantics.getSession(), tg, draftStatus == null); + return MigrationUtils.importSharedOntology(Simantics.getSession(), tg, draftStatus == null); } catch (Exception e) { Logger.defaultLogError(e); throw e; } } + public static void importSharedOntology(String fileName) throws Exception { + importSharedOntologyWithResult(fileName); + } + + public static List importSharedOntology2(String fileName) throws Exception { + MigratedImportResult result = importSharedOntologyWithResult(fileName); + return new ArrayList(result.roots); + } + public static void importSharedOntologyWithUI(ReadGraph graph, final Variable variable) throws DatabaseException { Display.getDefault().asyncExec(new Runnable() { diff --git a/bundles/org.simantics.scl.runtime/scl/Prelude.scl b/bundles/org.simantics.scl.runtime/scl/Prelude.scl index 7e558bdc4..2be6ed745 100644 --- a/bundles/org.simantics.scl.runtime/scl/Prelude.scl +++ b/bundles/org.simantics.scl.runtime/scl/Prelude.scl @@ -1305,6 +1305,11 @@ orElse :: Maybe a -> ( a) -> a orElse (Just x) _ = x orElse Nothing def = def +@inline +orElseM :: Maybe a -> ( Maybe a) -> Maybe a +orElseM mx@(Just x) _ = mx +orElseM Nothing def = def + /// Either /// """ diff --git a/bundles/pom.xml b/bundles/pom.xml index 5f42fcdad..43a6f72ab 100644 --- a/bundles/pom.xml +++ b/bundles/pom.xml @@ -166,6 +166,7 @@ org.simantics.modeling.ontology org.simantics.modeling.template2d.ontology org.simantics.modeling.template2d.ui + org.simantics.modeling.tests org.simantics.modeling.ui org.simantics.modeling.ui.workbench org.simantics.msvc.runtime diff --git a/features/org.simantics.sdk.feature/feature.xml b/features/org.simantics.sdk.feature/feature.xml index 134e97581..d59a8a7c4 100644 --- a/features/org.simantics.sdk.feature/feature.xml +++ b/features/org.simantics.sdk.feature/feature.xml @@ -323,4 +323,11 @@ version="0.0.0" unpack="false"/> + +