X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.services%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fservices%2Fadaption%2FAdaptionService2.java;h=859481727bfe9f701f53cbe462dc5ecb6219b83b;hb=1f8b50d81a1aa1bbd67a77f7cbc1060f2eb805d4;hp=47a14ddbcbccc7424bec9fe1ea059c588dffc24d;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.services/src/org/simantics/db/services/adaption/AdaptionService2.java b/bundles/org.simantics.db.services/src/org/simantics/db/services/adaption/AdaptionService2.java index 47a14ddbc..859481727 100644 --- a/bundles/org.simantics.db.services/src/org/simantics/db/services/adaption/AdaptionService2.java +++ b/bundles/org.simantics.db.services/src/org/simantics/db/services/adaption/AdaptionService2.java @@ -20,6 +20,7 @@ import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.adaption.Adapter; import org.simantics.db.adaption.AdaptionService; +import org.simantics.db.common.procedure.BlockingAsyncProcedure; import org.simantics.db.common.procedure.adapter.TransientCacheAsyncListener; import org.simantics.db.common.procedure.single.SyncReadProcedure; import org.simantics.db.common.request.BinaryRead; @@ -38,6 +39,8 @@ import org.simantics.layer0.Layer0; import org.simantics.utils.datastructures.Pair; public class AdaptionService2 implements AdaptionService { + + int foobaz; THashMap,Class>, AdapterDeclaration> adapters = new THashMap,Class>, AdapterDeclaration>(); @@ -583,11 +586,16 @@ public class AdaptionService2 implements AdaptionService { public T adapt(ReadGraph g, Resource r, C context, Class contextClass, Class targetClass, boolean possible) throws DatabaseException { Adapter adapter = getAdapter(g, r, context, contextClass, targetClass, possible); + if(adapter == null) return null; - SyncReadProcedure procedure = new SyncReadProcedure(); - adapter.adapt(g, r, context, procedure); - procedure.checkAndThrow(); - return procedure.result; + BlockingAsyncProcedure ap = new BlockingAsyncProcedure(g, null, adapter); + +// SyncReadProcedure procedure = new SyncReadProcedure(); + adapter.adapt(g, r, context, ap); + + return ap.get(); +// procedure.checkAndThrow(); +// return procedure.result; }