X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.common%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fcommon%2Fprocessor%2FMergingGraphRequestProcessor.java;h=e9523c0c899628ee03fb29a4130067131044708a;hp=bf72e041648e4d11c4e0e4b1de8506b8e8397cf2;hb=0d9b90834ce56b292c00b1a39850ed842c3e4d42;hpb=e5db6157fd8722c946613d4e46d7aaf6bfa92609 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 bf72e0416..e9523c0c8 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 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * Copyright (c) 2007, 2018 Association for Decentralized Information Management * in Industry THTH ry. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -24,12 +24,12 @@ import java.util.function.Consumer; import org.simantics.db.AsyncReadGraph; import org.simantics.db.AsyncRequestProcessor; import org.simantics.db.ReadGraph; -import org.simantics.db.RequestProcessor; import org.simantics.db.Resource; import org.simantics.db.Session; import org.simantics.db.WriteGraph; import org.simantics.db.common.procedure.adapter.AsyncMultiProcedureAdapter; import org.simantics.db.common.procedure.adapter.ProcedureAdapter; +import org.simantics.db.common.procedure.adapter.SyncMultiProcedureAdapter; import org.simantics.db.common.procedure.wrapper.NoneToAsyncProcedure; import org.simantics.db.common.request.ReadRequest; import org.simantics.db.common.request.WriteRequest; @@ -64,7 +64,7 @@ import org.simantics.db.request.WriteResult; import org.simantics.utils.DataContainer; import org.simantics.utils.datastructures.Pair; -public class MergingGraphRequestProcessor implements RequestProcessor { +public class MergingGraphRequestProcessor implements AsyncRequestProcessor { private static class SyncWriteRequestAdapter implements Write { @@ -264,11 +264,11 @@ public class MergingGraphRequestProcessor implements RequestProcessor { Logger.defaultLogError(t); - if(currentRequest.second instanceof AsyncProcedure) { - ((AsyncProcedure)currentRequest.second).exception(graph, t); - } else { - ((AsyncMultiProcedure)currentRequest.second).exception(graph, t); - } +// if(currentRequest.second instanceof AsyncProcedure) { +// ((AsyncProcedure)currentRequest.second).exception(graph, t); +// } else { +// ((AsyncMultiProcedure)currentRequest.second).exception(graph, t); +// } } @@ -286,25 +286,25 @@ public class MergingGraphRequestProcessor implements RequestProcessor { if(currentRequest.second instanceof AsyncProcedure) { if(currentRequest.first instanceof AsyncRead) { AsyncRead req = (AsyncRead)currentRequest.first; - graph.asyncRequest(req, (AsyncProcedure)currentRequest.second); + graph.syncRequest(req, (AsyncProcedure)currentRequest.second); } else { Read req = (Read)currentRequest.first; - graph.asyncRequest(req, (AsyncProcedure)currentRequest.second); + graph.syncRequest(req, (AsyncProcedure)currentRequest.second); } } else { AsyncMultiRead req = (AsyncMultiRead)currentRequest.first; - graph.asyncRequest(req, (AsyncMultiProcedure)currentRequest.second); + graph.syncRequest(req, (AsyncMultiProcedure)currentRequest.second); } } catch(Throwable t) { Logger.defaultLogError(t); - if(currentRequest.second instanceof AsyncProcedure) { - ((AsyncProcedure)currentRequest.second).exception(graph, t); - } else { - ((AsyncMultiProcedure)currentRequest.second).exception(graph, t); - } +// if(currentRequest.second instanceof AsyncProcedure) { +// ((AsyncProcedure)currentRequest.second).exception(graph, t); +// } else { +// ((AsyncMultiProcedure)currentRequest.second).exception(graph, t); +// } } } @@ -443,10 +443,10 @@ public class MergingGraphRequestProcessor implements RequestProcessor { // System.out.println(this + " asyncRequest(ReadGraphRequest> request, QueryProcedure4 procedure)"); - if (requestSet.contains(request)) + Pair pair = Pair.make(request, procedure); + if (requestSet.contains(pair)) return; - Pair pair = new Pair(request, procedure); requestQueue.add(pair); requestSet.add(pair); @@ -464,10 +464,10 @@ public class MergingGraphRequestProcessor implements RequestProcessor { // System.out.println(this + " asyncRequest(ReadGraphRequest> request, SingleQueryProcedure4 procedure) " + this); - if (requestSet.contains(request)) + Pair pair = Pair.make(request, procedure); + if (requestSet.contains(pair)) return; - Pair pair = new Pair(request, procedure); requestQueue.add(pair); requestSet.add(pair); @@ -486,10 +486,10 @@ public class MergingGraphRequestProcessor implements RequestProcessor { // System.out.println(this + " asyncRequest(WriteGraphRequest request)"); - if (requestSet.contains(request)) + Pair pair = Pair.make(request, callback); + if (requestSet.contains(pair)) return; - Pair pair = new Pair(request, callback); requestQueue.add(pair); requestSet.add(pair); @@ -509,10 +509,10 @@ public class MergingGraphRequestProcessor implements RequestProcessor { // System.out.println(this + " asyncRequest(WriteGraphRequest request)"); - if (requestSet.contains(request)) + Pair pair = Pair.make(request, callback); + if (requestSet.contains(pair)) return; - Pair pair = new Pair(request, callback); requestQueue.add(pair); requestSet.add(pair); @@ -532,10 +532,10 @@ public class MergingGraphRequestProcessor implements RequestProcessor { // System.out.println(this + " asyncRequest(WriteGraphRequest request)"); - if (requestSet.contains(request)) + Pair pair = Pair.make(request, callback); + if (requestSet.contains(pair)) return; - Pair pair = new Pair(request, callback); requestQueue.add(pair); requestSet.add(pair); @@ -889,10 +889,10 @@ public class MergingGraphRequestProcessor implements RequestProcessor { public synchronized void asyncRequest(Read request, AsyncProcedure procedure) { - if (requestSet.contains(request)) + Pair pair = Pair.make(request, procedure); + if (requestSet.contains(pair)) return; - Pair pair = new Pair(request, procedure); requestQueue.add(pair); requestSet.add(pair); @@ -917,17 +917,17 @@ public class MergingGraphRequestProcessor implements RequestProcessor { final ArrayList result = new ArrayList(); final DataContainer exception = new DataContainer(); - syncRequest(request, new AsyncMultiProcedureAdapter() { + syncRequest(request, new SyncMultiProcedureAdapter() { @Override - public void execute(AsyncReadGraph graph, T t) { + public void execute(ReadGraph graph, T t) { synchronized(result) { result.add(t); } } @Override - public void exception(AsyncReadGraph graph, Throwable t) { + public void exception(ReadGraph graph, Throwable t) { exception.set(t); } @@ -947,11 +947,6 @@ public class MergingGraphRequestProcessor implements RequestProcessor { return result; } - @Override - public Collection syncRequest(MultiRead request, AsyncMultiProcedure procedure) { - throw new UnsupportedOperationException("Not implemented"); - } - @Override public Collection syncRequest(MultiRead request, MultiProcedure procedure) { throw new UnsupportedOperationException("Not implemented"); @@ -967,11 +962,6 @@ public class MergingGraphRequestProcessor implements RequestProcessor { throw new UnsupportedOperationException("Not implemented"); } - @Override - public void asyncRequest(MultiRead request, AsyncMultiProcedure procedure) { - throw new UnsupportedOperationException("Not implemented"); - } - @Override public void asyncRequest(MultiRead request, MultiProcedure procedure) { throw new UnsupportedOperationException("Not implemented"); @@ -1103,12 +1093,6 @@ public class MergingGraphRequestProcessor implements RequestProcessor { } - @Override - public Collection syncRequest(MultiRead arg0, AsyncMultiListener arg1) { - throw new UnsupportedOperationException("Not implemented."); - - } - @Override public Collection syncRequest(MultiRead arg0, SyncMultiListener arg1) { throw new UnsupportedOperationException("Not implemented."); @@ -1153,12 +1137,6 @@ public class MergingGraphRequestProcessor implements RequestProcessor { } - @Override - public void asyncRequest(MultiRead arg0, AsyncMultiListener arg1) { - throw new UnsupportedOperationException("Not implemented."); - - } - @Override public void asyncRequest(MultiRead arg0, SyncMultiListener arg1) { throw new UnsupportedOperationException("Not implemented.");