From: Tuukka Lehtonen Date: Thu, 13 Apr 2017 11:27:56 +0000 (+0300) Subject: Merge "Declare effects for constants and variables" X-Git-Tag: v1.29.0~111 X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=commitdiff_plain;h=62201fffbf97905cd7cce3b68458f519a64a26d3;hp=6f75cd65e0ba87535a4b92003604f8f5fc94e9d5 Merge "Declare effects for constants and variables" --- diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/processor/MergingGraphRequestProcessor.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/processor/MergingGraphRequestProcessor.java index acd2aad02..5e07bb034 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/processor/MergingGraphRequestProcessor.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/processor/MergingGraphRequestProcessor.java @@ -26,7 +26,6 @@ import org.simantics.db.ReadGraph; import org.simantics.db.RequestProcessor; import org.simantics.db.Resource; import org.simantics.db.Session; -import org.simantics.db.VirtualGraph; import org.simantics.db.WriteGraph; import org.simantics.db.common.procedure.adapter.AsyncMultiProcedureAdapter; import org.simantics.db.common.procedure.adapter.ProcedureAdapter; @@ -56,7 +55,6 @@ import org.simantics.db.request.ExternalRead; import org.simantics.db.request.MultiRead; import org.simantics.db.request.Read; import org.simantics.db.request.ReadInterface; -import org.simantics.db.request.UndoTraits; import org.simantics.db.request.Write; import org.simantics.db.request.WriteInterface; import org.simantics.db.request.WriteOnly; @@ -126,15 +124,6 @@ public class MergingGraphRequestProcessor implements RequestProcessor { throw new RuntimeException("See cause for the real exception.", exception); } - @Override - public VirtualGraph getProvider() { - return null; - } - -// @Override -// public void fillMetadata(Map metadata) { -// } - public void acquire() { try { semaphore.acquire(); @@ -147,11 +136,6 @@ public class MergingGraphRequestProcessor implements RequestProcessor { semaphore.release(); } - @Override - public UndoTraits getUndoTraits() { - return null; - } - @Override public String toString() { return "SyncWriteRequestAdapter " + request; diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/DelayedWriteRequest.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/DelayedWriteRequest.java index 7194d9a95..044e91acc 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/DelayedWriteRequest.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/DelayedWriteRequest.java @@ -17,7 +17,6 @@ import org.simantics.db.AsyncRequestProcessor; import org.simantics.db.ChangeSetIdentifier; import org.simantics.db.Operation; import org.simantics.db.RequestProcessor; -import org.simantics.db.VirtualGraph; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.Procedure; import org.simantics.db.request.DelayedWrite; @@ -75,16 +74,6 @@ import org.simantics.utils.datastructures.Callback; */ public abstract class DelayedWriteRequest implements DelayedWrite, UndoTraits, WriteInterface { - @Override - public VirtualGraph getProvider() { - return null; - } - - @Override - public UndoTraits getUndoTraits() { - return this; - } - @Override public ChangeSetIdentifier getIdentifier() { return null; diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/DelayedWriteResultRequest.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/DelayedWriteResultRequest.java index 94bd4c04b..05bec870e 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/DelayedWriteResultRequest.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/DelayedWriteResultRequest.java @@ -17,7 +17,6 @@ import org.simantics.db.VirtualGraph; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.Procedure; import org.simantics.db.request.DelayedWriteResult; -import org.simantics.db.request.UndoTraits; import org.simantics.db.request.WriteInterface; import org.simantics.db.request.WriteTraits; @@ -85,11 +84,6 @@ public abstract class DelayedWriteResultRequest implements DelayedWriteResult final public VirtualGraph getProvider() { return provider; } - - @Override - public UndoTraits getUndoTraits() { - return null; - } @Override public void request(AsyncRequestProcessor processor, final Procedure procedure) { diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteOnlyRequest.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteOnlyRequest.java index 03a4b4211..654bf32bf 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteOnlyRequest.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteOnlyRequest.java @@ -16,7 +16,6 @@ import org.simantics.db.RequestProcessor; import org.simantics.db.VirtualGraph; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.Procedure; -import org.simantics.db.request.UndoTraits; import org.simantics.db.request.WriteInterface; import org.simantics.db.request.WriteOnly; import org.simantics.utils.datastructures.Callback; @@ -88,11 +87,6 @@ public abstract class WriteOnlyRequest implements WriteOnly, WriteInterface procedure) { processor.asyncRequest(this, new Callback() { diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteOnlyResultRequest.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteOnlyResultRequest.java index d9fc13515..37978441b 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteOnlyResultRequest.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteOnlyResultRequest.java @@ -16,7 +16,6 @@ import org.simantics.db.RequestProcessor; import org.simantics.db.VirtualGraph; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.Procedure; -import org.simantics.db.request.UndoTraits; import org.simantics.db.request.WriteInterface; import org.simantics.db.request.WriteOnlyResult; @@ -84,11 +83,6 @@ public abstract class WriteOnlyResultRequest implements WriteOnlyResult, W final public VirtualGraph getProvider() { return provider; } - - @Override - public UndoTraits getUndoTraits() { - return null; - } @Override public void request(AsyncRequestProcessor processor, final Procedure procedure) { diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteRequest.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteRequest.java index 018542474..cb9460d13 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteRequest.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteRequest.java @@ -93,12 +93,6 @@ public abstract class WriteRequest implements Write, UndoTraits, WriteInterface< return provider; } - @Override - public UndoTraits getUndoTraits() { - return this; - } - - @Override public void request(AsyncRequestProcessor processor, final Procedure procedure) { processor.asyncRequest(this, new Callback() { diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteResultRequest.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteResultRequest.java index 7f95eaba3..d3c2373e8 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteResultRequest.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/request/WriteResultRequest.java @@ -16,7 +16,6 @@ import org.simantics.db.RequestProcessor; import org.simantics.db.VirtualGraph; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.Procedure; -import org.simantics.db.request.UndoTraits; import org.simantics.db.request.WriteInterface; import org.simantics.db.request.WriteResult; @@ -84,11 +83,6 @@ public abstract class WriteResultRequest implements WriteResult, WriteInte final public VirtualGraph getProvider() { return provider; } - - @Override - public UndoTraits getUndoTraits() { - return null; - } @Override public void request(AsyncRequestProcessor processor, final Procedure procedure) { diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/utils/Transaction.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/utils/Transaction.java index 75020215d..0a8dcea41 100644 --- a/bundles/org.simantics.db.common/src/org/simantics/db/common/utils/Transaction.java +++ b/bundles/org.simantics.db.common/src/org/simantics/db/common/utils/Transaction.java @@ -21,7 +21,6 @@ import org.simantics.db.ReadGraph; import org.simantics.db.RequestProcessor; import org.simantics.db.Resource; import org.simantics.db.Statement; -import org.simantics.db.VirtualGraph; import org.simantics.db.WriteGraph; import org.simantics.db.WriteOnlyGraph; import org.simantics.db.common.request.DelayedWriteRequest; @@ -40,7 +39,6 @@ import org.simantics.db.exception.ValidationException; import org.simantics.db.procedure.Procedure; import org.simantics.db.request.DelayedWrite; import org.simantics.db.request.Read; -import org.simantics.db.request.UndoTraits; import org.simantics.db.request.Write; import org.simantics.utils.datastructures.Callback; @@ -238,14 +236,6 @@ public class Transaction { } if (!t.commit) throw new CancelTransactionException(); } - @Override - public UndoTraits getUndoTraits() { - return null; - } - @Override - public VirtualGraph getProvider() { - return null; - } }; processor.asyncRequest( request, callback ); diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/DefaultInstanceFactoryRequest.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/DefaultInstanceFactoryRequest.java index 48ee1aac7..fa9d64d8e 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/DefaultInstanceFactoryRequest.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/DefaultInstanceFactoryRequest.java @@ -16,11 +16,9 @@ import java.util.HashSet; import java.util.Map; import org.simantics.db.Resource; -import org.simantics.db.VirtualGraph; import org.simantics.db.WriteGraph; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.adapter.Template; -import org.simantics.db.request.UndoTraits; import org.simantics.db.request.WriteResult; import org.simantics.layer0.Layer0; @@ -59,14 +57,4 @@ public class DefaultInstanceFactoryRequest implements WriteResult metadata); } diff --git a/bundles/org.simantics.db/src/org/simantics/db/request/Write.java b/bundles/org.simantics.db/src/org/simantics/db/request/Write.java index f46c7c6e7..66b692ebf 100644 --- a/bundles/org.simantics.db/src/org/simantics/db/request/Write.java +++ b/bundles/org.simantics.db/src/org/simantics/db/request/Write.java @@ -62,6 +62,7 @@ import org.simantics.db.exception.DatabaseException; * @see WriteResult * @see Session */ +@FunctionalInterface public interface Write extends WriteTraits { /** diff --git a/bundles/org.simantics.db/src/org/simantics/db/request/WriteOnly.java b/bundles/org.simantics.db/src/org/simantics/db/request/WriteOnly.java index a74255bf0..5422b5707 100644 --- a/bundles/org.simantics.db/src/org/simantics/db/request/WriteOnly.java +++ b/bundles/org.simantics.db/src/org/simantics/db/request/WriteOnly.java @@ -67,6 +67,7 @@ import org.simantics.db.exception.DatabaseException; * @see Session * @see SimpleGraphRequest */ +@FunctionalInterface public interface WriteOnly extends WriteTraits { /** diff --git a/bundles/org.simantics.db/src/org/simantics/db/request/WriteOnlyResult.java b/bundles/org.simantics.db/src/org/simantics/db/request/WriteOnlyResult.java index e7f37f632..502c84d18 100644 --- a/bundles/org.simantics.db/src/org/simantics/db/request/WriteOnlyResult.java +++ b/bundles/org.simantics.db/src/org/simantics/db/request/WriteOnlyResult.java @@ -65,6 +65,7 @@ import org.simantics.db.exception.DatabaseException; * @see Session * @see SimpleGraphRequest */ +@FunctionalInterface public interface WriteOnlyResult extends WriteTraits { /** diff --git a/bundles/org.simantics.db/src/org/simantics/db/request/WriteResult.java b/bundles/org.simantics.db/src/org/simantics/db/request/WriteResult.java index 8134b4e28..18f6a1e3d 100644 --- a/bundles/org.simantics.db/src/org/simantics/db/request/WriteResult.java +++ b/bundles/org.simantics.db/src/org/simantics/db/request/WriteResult.java @@ -65,6 +65,7 @@ import org.simantics.db.exception.DatabaseException; * @see Session * @see SimpleGraphRequest */ +@FunctionalInterface public interface WriteResult extends WriteTraits { /** @@ -91,5 +92,5 @@ public interface WriteResult extends WriteTraits { * be cancelled and any changes rolled back */ T perform(WriteGraph graph) throws DatabaseException; - + } diff --git a/bundles/org.simantics.db/src/org/simantics/db/request/WriteTraits.java b/bundles/org.simantics.db/src/org/simantics/db/request/WriteTraits.java index d0738e0a2..16b4e793d 100644 --- a/bundles/org.simantics.db/src/org/simantics/db/request/WriteTraits.java +++ b/bundles/org.simantics.db/src/org/simantics/db/request/WriteTraits.java @@ -15,12 +15,7 @@ import org.simantics.db.VirtualGraph; public interface WriteTraits { - /** - * If this request is undoable it should return UndoTraits interface. - * - * @return null or UndoTraits interface. - */ - UndoTraits getUndoTraits(); - - VirtualGraph getProvider(); + default VirtualGraph getProvider() { + return null; + } } diff --git a/bundles/org.simantics.desktop.ui.ontology/graph.tg b/bundles/org.simantics.desktop.ui.ontology/graph.tg index 33a3871fc..c1c8ff68e 100644 Binary files a/bundles/org.simantics.desktop.ui.ontology/graph.tg and b/bundles/org.simantics.desktop.ui.ontology/graph.tg differ diff --git a/bundles/org.simantics.diagram.ontology/graph.tg b/bundles/org.simantics.diagram.ontology/graph.tg index 72053ec5b..45f65af26 100644 Binary files a/bundles/org.simantics.diagram.ontology/graph.tg and b/bundles/org.simantics.diagram.ontology/graph.tg differ diff --git a/bundles/org.simantics.document.base.ontology/graph.tg b/bundles/org.simantics.document.base.ontology/graph.tg index c321d212c..51f83d20b 100644 Binary files a/bundles/org.simantics.document.base.ontology/graph.tg and b/bundles/org.simantics.document.base.ontology/graph.tg differ diff --git a/bundles/org.simantics.document.swt.ontology/graph.tg b/bundles/org.simantics.document.swt.ontology/graph.tg index fb597cc1c..332f21fb2 100644 Binary files a/bundles/org.simantics.document.swt.ontology/graph.tg and b/bundles/org.simantics.document.swt.ontology/graph.tg differ diff --git a/bundles/org.simantics.graph.compiler/src/org/simantics/graph/compiler/internal/resourceFiles/ResourceFile.java b/bundles/org.simantics.graph.compiler/src/org/simantics/graph/compiler/internal/resourceFiles/ResourceFile.java index d9d155037..a847dbee1 100644 --- a/bundles/org.simantics.graph.compiler/src/org/simantics/graph/compiler/internal/resourceFiles/ResourceFile.java +++ b/bundles/org.simantics.graph.compiler/src/org/simantics/graph/compiler/internal/resourceFiles/ResourceFile.java @@ -91,7 +91,7 @@ public class ResourceFile implements IResourceFile { @Override public InputStream getContent() { StringWriter writer = new StringWriter(); - write(new FilterCRWriter(writer)); + write(String.format("%n").length() == 1 ? new FilterCRWriter(writer) : writer); return new ByteArrayInputStream(writer.toString().getBytes(UTF8)); } @@ -108,11 +108,12 @@ public class ResourceFile implements IResourceFile { } public static void main(String[] args) { - ResourceRef Foo = new ResourceRef("Foo", "http://www.dsf.sdf/Foo"); + /*ResourceRef Foo = new ResourceRef("Foo", "http://www.dsf.sdf/Foo"); ResourceRef Bar = new ResourceRef("Foo", "http://www.dsf.sdf/Bar"); Bar.deprecated = true; new ResourceFile("org.simantics.graph", "Testi", Arrays.asList( Foo, Bar - )).write(new OutputStreamWriter(System.out)); + )).write(new OutputStreamWriter(System.out));*/ + System.out.println(String.format("%n").length()); } } diff --git a/bundles/org.simantics.help.ontology/graph.tg b/bundles/org.simantics.help.ontology/graph.tg index 376ab173e..78c58e63d 100644 Binary files a/bundles/org.simantics.help.ontology/graph.tg and b/bundles/org.simantics.help.ontology/graph.tg differ diff --git a/bundles/org.simantics.layer0/graph.tg b/bundles/org.simantics.layer0/graph.tg index 37fc6470b..c072a1509 100644 Binary files a/bundles/org.simantics.layer0/graph.tg and b/bundles/org.simantics.layer0/graph.tg differ diff --git a/bundles/org.simantics.modeling.ontology/graph.tg b/bundles/org.simantics.modeling.ontology/graph.tg index ee66bf879..0ac20b8f4 100644 Binary files a/bundles/org.simantics.modeling.ontology/graph.tg and b/bundles/org.simantics.modeling.ontology/graph.tg differ diff --git a/bundles/org.simantics.platform.ui.ontology/graph.tg b/bundles/org.simantics.platform.ui.ontology/graph.tg index eafb6ec76..9509da624 100644 Binary files a/bundles/org.simantics.platform.ui.ontology/graph.tg and b/bundles/org.simantics.platform.ui.ontology/graph.tg differ diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ERecord.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ERecord.java index 6ef9e9e72..a41c0f042 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ERecord.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ERecord.java @@ -54,11 +54,14 @@ public class ERecord extends ASTExpression { THashMap recordMap = new THashMap(fields.length); for(FieldAssignment field : fields) { if(field.value == null) { + String actualName = field.name; + if(actualName.charAt(0) == '?') + actualName = actualName.substring(1); String bestMatch = null; int bestMatchLength = 0; for(int i=0;i bestMatchLength) { + if(actualName.startsWith(fieldName) && fieldName.length() > bestMatchLength) { bestMatch = fieldName; bestMatchLength = fieldName.length(); } diff --git a/bundles/org.simantics.scl.db/scl/Simantics/DB.scl b/bundles/org.simantics.scl.db/scl/Simantics/DB.scl index 70b6b97a6..3d71ae514 100644 --- a/bundles/org.simantics.scl.db/scl/Simantics/DB.scl +++ b/bundles/org.simantics.scl.db/scl/Simantics/DB.scl @@ -256,6 +256,22 @@ importJava "org.simantics.db.common.utils.OrderedSetUtils" where importJava "org.simantics.db.common.utils.ListUtils" where @JavaName toList elementsOfList :: Resource -> [Resource] + + @JavaName create + createList :: [Resource] -> Resource + + @javaName insertBack + insertBack :: Resource -> [Resource] -> () + + @javaName removeElement + removeElement :: Resource -> Resource -> Boolean + + @javaName swapWithPrevious + swapWithPrevious :: Resource -> Resource -> Boolean + + @javaName swapWithNext + swapWithNext :: Resource -> Resource -> Boolean + importJava "org.simantics.db.common.utils.CommonDBUtils" where isParent :: Resource -> Resource -> Boolean diff --git a/bundles/org.simantics.spreadsheet.ontology/graph.tg b/bundles/org.simantics.spreadsheet.ontology/graph.tg index 8ad7b0843..405ddb994 100644 Binary files a/bundles/org.simantics.spreadsheet.ontology/graph.tg and b/bundles/org.simantics.spreadsheet.ontology/graph.tg differ diff --git a/bundles/org.simantics.utils.thread.swt/src/org/simantics/utils/threads/SWTThread.java b/bundles/org.simantics.utils.thread.swt/src/org/simantics/utils/threads/SWTThread.java index b5bb6722c..07102a102 100644 --- a/bundles/org.simantics.utils.thread.swt/src/org/simantics/utils/threads/SWTThread.java +++ b/bundles/org.simantics.utils.thread.swt/src/org/simantics/utils/threads/SWTThread.java @@ -22,25 +22,32 @@ import org.eclipse.swt.widgets.Widget; public class SWTThread implements IThreadWorkQueue, Executor { - final Display display; + private final Display display; + private final boolean executeAsync; + + public static IThreadWorkQueue getThreadAccess(Display display, boolean executeAsync) + { + return new SWTThread(display, executeAsync); + } public static IThreadWorkQueue getThreadAccess(Display display) { - return new SWTThread(display); + return getThreadAccess(display, false); } public static IThreadWorkQueue getThreadAccess(Widget widget) { - return new SWTThread(widget.getDisplay()); + return new SWTThread(widget.getDisplay(), false); } public static IThreadWorkQueue getThreadAccess() { - return new SWTThread(Display.getDefault()); + return new SWTThread(Display.getDefault(), false); } - SWTThread(Display display) + SWTThread(Display display, boolean executeAsync) { this.display = display; + this.executeAsync = executeAsync; } @Override @@ -87,6 +94,7 @@ public class SWTThread implements IThreadWorkQueue, Executor { @Override public void execute(Runnable command) { - syncExec(command); + if (executeAsync) asyncExec(command); + else syncExec(command); } } diff --git a/bundles/org.simantics.viewpoint.ontology/graph.tg b/bundles/org.simantics.viewpoint.ontology/graph.tg index d3163ee7b..12a8c0b7d 100644 Binary files a/bundles/org.simantics.viewpoint.ontology/graph.tg and b/bundles/org.simantics.viewpoint.ontology/graph.tg differ diff --git a/bundles/org.simantics.workbench.ontology/graph.tg b/bundles/org.simantics.workbench.ontology/graph.tg index 68a1b4c50..caca38320 100644 Binary files a/bundles/org.simantics.workbench.ontology/graph.tg and b/bundles/org.simantics.workbench.ontology/graph.tg differ diff --git a/tests/org.simantics.db.tests/src/org/simantics/db/tests/regression/bugs/Issue3288Test1.java b/tests/org.simantics.db.tests/src/org/simantics/db/tests/regression/bugs/Issue3288Test1.java index 057cd2b17..12656ce7b 100644 --- a/tests/org.simantics.db.tests/src/org/simantics/db/tests/regression/bugs/Issue3288Test1.java +++ b/tests/org.simantics.db.tests/src/org/simantics/db/tests/regression/bugs/Issue3288Test1.java @@ -17,7 +17,6 @@ import org.simantics.db.Resource; import org.simantics.db.VirtualGraph; import org.simantics.db.WriteGraph; import org.simantics.db.exception.DatabaseException; -import org.simantics.db.request.UndoTraits; import org.simantics.db.request.Write; import org.simantics.db.testing.cases.FreshDatabaseTest; import org.simantics.layer0.Layer0; @@ -33,10 +32,6 @@ public class Issue3288Test1 extends FreshDatabaseTest { getSession().syncRequest(new Modi()); } private static class Modi implements Write { - @Override - public UndoTraits getUndoTraits() { - return null; - } @Override public VirtualGraph getProvider() { return null;