]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.common/src/org/simantics/db/common/utils/Transaction.java
Merge "Multiple reader thread support for db client"
[simantics/platform.git] / bundles / org.simantics.db.common / src / org / simantics / db / common / utils / Transaction.java
index 75020215d686d00c79fd72a870c00e3184c7be60..96d915482e53b91efb9f5e536d7d0e0d480a3868 100644 (file)
@@ -13,15 +13,16 @@ package org.simantics.db.common.utils;
 import java.util.Collection;
 import java.util.Set;
 import java.util.concurrent.Semaphore;
+import java.util.function.Consumer;
 
 import org.simantics.databoard.accessor.Accessor;
 import org.simantics.databoard.binding.Binding;
 import org.simantics.databoard.type.Datatype;
+import org.simantics.db.AsyncRequestProcessor;
 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,9 +41,7 @@ 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;
 
 /**
  * Synchronous Transaction. <p>
@@ -152,11 +151,11 @@ public class Transaction {
                }
        }
        
-       public static void startTransaction(RequestProcessor processor, boolean write) throws DatabaseException {
+       public static void startTransaction(AsyncRequestProcessor processor, boolean write) throws DatabaseException {
                startTransaction(processor, write ? Type.WRITE : Type.READ);
        }
        
-       public static void startTransaction(RequestProcessor processor, Type type) throws DatabaseException {
+       public static void startTransaction(AsyncRequestProcessor processor, Type type) throws DatabaseException {
                switch (type) {
                        case READ:
                        {
@@ -218,12 +217,9 @@ public class Transaction {
                                t.ts = new Semaphore(0);
                                transactions.set(t);
 
-                               Callback<DatabaseException> callback = new Callback<DatabaseException>() {
-                                       @Override
-                                       public void run(DatabaseException parameter) {
-                                               t.error = parameter;
-                                               t.es.release(9999);
-                                       }
+                               Consumer<DatabaseException> callback = parameter -> {
+                                       t.error = parameter;
+                                       t.es.release(9999);
                                };
 
                                Write request =  new Write() { 
@@ -238,14 +234,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 );
@@ -270,12 +258,9 @@ public class Transaction {
                                t.ts = new Semaphore(0);
                                transactions.set(t);
 
-                               Callback<DatabaseException> callback = new Callback<DatabaseException>() {
-                                       @Override
-                                       public void run(DatabaseException parameter) {
-                                               t.error = parameter;
-                                               t.es.release(9999);
-                                       }
+                               Consumer<DatabaseException> callback = parameter -> {
+                                       t.error = parameter;
+                                       t.es.release(9999);
                                };
 
                                DelayedWrite request =  new DelayedWriteRequest() {