]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/ReadGraphImpl.java
Generate parts of db client query code
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / graph / ReadGraphImpl.java
index 614a96df3c47d29ea45e249dfb10df9653aaedf4..3337e55b8455d88dd760efbfc19fe0df08e31a50 100644 (file)
@@ -1896,35 +1896,36 @@ public class ReadGraphImpl implements ReadGraph {
 
                assert (request != null);
 
-               if (parent != null) {
+               return processor.query(this, request, parent, null, null);
 
-                       try {
-                               return processor.queryRead(this, request, parent, null, null);
-                       } catch (Throwable e) {
-                               if(e instanceof DatabaseException) throw (DatabaseException)e;
-                               else throw new DatabaseException(e);
-                       }
-
-               } else {
-
-                       try {
-
-                               return processor.tryQuery(this, request);
-
-                       } catch (Throwable throwable) {
-
-                               //Logger.defaultLogError("Internal read request failure", throwable);
-
-                               if (throwable instanceof DatabaseException)
-                                       throw (DatabaseException) throwable;
-                               else
-                                       throw new DatabaseException(
-                                                       "Unexpected exception in ReadGraph.syncRequest(Read,Procedure)",
-                                                       throwable);
-
-                       }
-
-               }
+//             if (parent != null) {
+//
+//                     try {
+//                     } catch (Throwable e) {
+//                             if(e instanceof DatabaseException) throw (DatabaseException)e;
+//                             else throw new DatabaseException(e);
+//                     }
+//
+//             } else {
+//
+//                     try {
+//
+//                             return processor.tryQuery(this, request);
+//
+//                     } catch (Throwable throwable) {
+//
+//                             //Logger.defaultLogError("Internal read request failure", throwable);
+//
+//                             if (throwable instanceof DatabaseException)
+//                                     throw (DatabaseException) throwable;
+//                             else
+//                                     throw new DatabaseException(
+//                                                     "Unexpected exception in ReadGraph.syncRequest(Read,Procedure)",
+//                                                     throwable);
+//
+//                     }
+//
+//             }
                
        }
 
@@ -1947,42 +1948,44 @@ public class ReadGraphImpl implements ReadGraph {
 
                ListenerBase listener = procedure != null ? getListenerBase(procedure) : null;
 
-               if (parent != null || listener != null) {
-                       
-                       try {
-                return processor.queryRead(this, request, parent, procedure, listener);
-            } catch (Throwable e) {
-                if(e instanceof DatabaseException) throw (DatabaseException)e;
-                else throw new DatabaseException(e);
-            }
-
-               } else {
-
-                       try {
-
-                               T t = processor.tryQuery(this, request);
-                               if(procedure != null)
-                                       procedure.execute(this, t);
-
-                               return t;
-
-                       } catch (Throwable throwable) {
-
-                               Logger.defaultLogError("Internal read request failure", throwable);
-
-                               if(procedure != null)
-                                       procedure.exception(this, throwable);
-                               
-                               if (throwable instanceof DatabaseException)
-                                       throw (DatabaseException) throwable;
-                               else
-                                       throw new DatabaseException(
-                                                       "Unexpected exception in ReadGraph.syncRequest(Read,Procedure)",
-                                                       throwable);
-
-                       }
+        return processor.query(this, request, parent, procedure, listener);
+        
 
-               }
+//             if (parent != null || listener != null) {
+//                     
+//                     try {
+//            } catch (Throwable e) {
+//                if(e instanceof DatabaseException) throw (DatabaseException)e;
+//                else throw new DatabaseException(e);
+//            }
+//
+//             } else {
+//
+//                     try {
+//
+//                             T t = processor.tryQuery(this, request);
+//                             if(procedure != null)
+//                                     procedure.execute(this, t);
+//
+//                             return t;
+//
+//                     } catch (Throwable throwable) {
+//
+//                             Logger.defaultLogError("Internal read request failure", throwable);
+//
+//                             if(procedure != null)
+//                                     procedure.exception(this, throwable);
+//                             
+//                             if (throwable instanceof DatabaseException)
+//                                     throw (DatabaseException) throwable;
+//                             else
+//                                     throw new DatabaseException(
+//                                                     "Unexpected exception in ReadGraph.syncRequest(Read,Procedure)",
+//                                                     throwable);
+//
+//                     }
+//
+//             }
 
        }
 
@@ -2071,71 +2074,71 @@ public class ReadGraphImpl implements ReadGraph {
 
                assert (request != null);
 
-               // System.out.println("syncRequest " + request + " syncParent=" +
-               // syncParent);
-
                ListenerBase listener = getListenerBase(procedure);
 
-               if (parent != null || listener != null || ((request.getFlags() & RequestFlags.SCHEDULE) > 0)) {
-
-//                     Object syncParent = request;
-
-//                     final ReadGraphImpl newGraph = newSync();
-
-                       final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
-                                       procedure, request);
-                       
-                       processor.query(this, request, parent, wrapper, listener);
-
-//                     newGraph.waitAsync(syncParent);
-                       
-                       Throwable e = wrapper.getException();
-                       if (e != null) {
-                               // The request was async - produce meaningful stack trace by
-                               // wrapping
-                               if (e instanceof DatabaseException)
-                                       throw (DatabaseException) e;
-                               else
-                                       throw new DatabaseException(e);
-                       }
-                       
-                       return wrapper.getResult();
-
-               } else {
-
-                       // System.out.println("direct call " + request );
-
-                       // Do not set the sync state.parent for external threads
-//                     Object syncParent = request;
-
-//                     final ReadGraphImpl newGraph = newSync();
-
-                       final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
-                                       procedure, request);
-
-                       try {
-
-                               processor.tryQuery(this, request, wrapper);
-
-                       } catch (Throwable t) {
-
-                               wrapper.exception(this, t);
-
-                       }
-
-                       Throwable e = wrapper.getException();
-                       if (e != null) {
-                               // The request was async - produce meaningful stack trace by
-                               // wrapping
-                               if (e instanceof DatabaseException)
-                                       throw (DatabaseException) e;
-                               else
-                                       throw new DatabaseException(e);
-                       }
-                       
-                       return wrapper.getResult();
+               final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
+                               procedure, request);
+               
+               processor.query(this, request, parent, wrapper, listener);
+               
+               return wrapper.getResult();
 
-               }
+//             if (parent != null || listener != null || ((request.getFlags() & RequestFlags.SCHEDULE) > 0)) {
+//
+////                   Object syncParent = request;
+//
+////                   final ReadGraphImpl newGraph = newSync();
+//
+//
+////                   newGraph.waitAsync(syncParent);
+//                     
+//                     Throwable e = wrapper.getException();
+//                     if (e != null) {
+//                             // The request was async - produce meaningful stack trace by
+//                             // wrapping
+//                             if (e instanceof DatabaseException)
+//                                     throw (DatabaseException) e;
+//                             else
+//                                     throw new DatabaseException(e);
+//                     }
+//                     
+//                     return wrapper.getResult();
+//
+//             } else {
+//
+//                     // System.out.println("direct call " + request );
+//
+//                     // Do not set the sync state.parent for external threads
+////                   Object syncParent = request;
+//
+////                   final ReadGraphImpl newGraph = newSync();
+//
+//                     final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
+//                                     procedure, request);
+//
+//                     try {
+//
+//                             processor.tryQuery(this, request, wrapper);
+//
+//                     } catch (Throwable t) {
+//
+//                             wrapper.exception(this, t);
+//
+//                     }
+//
+//                     Throwable e = wrapper.getException();
+//                     if (e != null) {
+//                             // The request was async - produce meaningful stack trace by
+//                             // wrapping
+//                             if (e instanceof DatabaseException)
+//                                     throw (DatabaseException) e;
+//                             else
+//                                     throw new DatabaseException(e);
+//                     }
+//                     
+//                     return wrapper.getResult();
+//
+//             }
 
        }
 
@@ -2143,40 +2146,36 @@ public class ReadGraphImpl implements ReadGraph {
 
                assert (request != null);
 
-               // System.out.println("syncRequest " + request + " syncParent=" +
-               // syncParent);
-
                ListenerBase listener = getListenerBase(procedure);
 
-               if (parent != null || listener != null || ((request.getFlags() & RequestFlags.SCHEDULE) > 0)) {
-
-//                     final ReadGraphImpl newGraph = newSync();
-
-                       final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
-                                       procedure, request);
-
-                       processor.query(this, request, parent, wrapper, listener);
-
-               } else {
+               final ResultCallWrappedSingleQueryProcedure4<T> wrapper = new ResultCallWrappedSingleQueryProcedure4<T>(
+                               procedure, request);
 
-                       try {
+               processor.query(this, request, parent, wrapper, listener);
 
-//                             final ReadGraphImpl newGraph = newSync();
-                               processor.tryQuery(this, request, procedure);
-//                             newGraph.waitAsync(null);
-                               waitAsyncProcedure(procedure);
-
-                       } catch (Throwable t) {
-                               if(Development.DEVELOPMENT) {
-                                       if(Development.<Boolean>getProperty(DevelopmentKeys.WRITEGRAPH_EXCEPTION_STACKTRACES, Bindings.BOOLEAN)) {
-                                       t.printStackTrace();
-                                       }
-                               }
-                               procedure.exception(this, t);
-                               waitAsyncProcedure(procedure);
-                       }
-
-               }
+//             if (parent != null || listener != null || ((request.getFlags() & RequestFlags.SCHEDULE) > 0)) {
+//
+//
+//             } else {
+//
+//                     try {
+//
+////                           final ReadGraphImpl newGraph = newSync();
+//                             processor.tryQuery(this, request, procedure);
+////                           newGraph.waitAsync(null);
+//                             waitAsyncProcedure(procedure);
+//
+//                     } catch (Throwable t) {
+//                             if(Development.DEVELOPMENT) {
+//                                     if(Development.<Boolean>getProperty(DevelopmentKeys.WRITEGRAPH_EXCEPTION_STACKTRACES, Bindings.BOOLEAN)) {
+//                                     t.printStackTrace();
+//                                     }
+//                             }
+//                             procedure.exception(this, t);
+//                             waitAsyncProcedure(procedure);
+//                     }
+//
+//             }
 
        }
 
@@ -2545,55 +2544,58 @@ public class ReadGraphImpl implements ReadGraph {
                assert (request != null);
 
                ListenerBase listener = getListenerBase(procedure);
-
+               
                final DataContainer<Throwable> exception = new DataContainer<Throwable>();
                final DataContainer<T> result = new DataContainer<T>();
 
-               if (parent != null || listener != null) {
-
-//                     final ReadGraphImpl newGraph = newSync();
-                       
-                       processor.query(this, request, parent, new Procedure<T>() {
+               processor.query(this, request, parent, new Procedure<T>() {
 
-                               @Override
-                               public void exception(Throwable throwable) {
-                                       exception.set(throwable);
-                                       procedure.exception(throwable);
-                               }
-
-                               @Override
-                               public void execute(T t) {
-                                       result.set(t);
-                                       procedure.execute(t);
-                               }
-
-                       }, listener);
-
-//                     newGraph.waitAsync(request);
-
-               } else {
-
-                       try {
+                       @Override
+                       public void exception(Throwable throwable) {
+                               exception.set(throwable);
+                               procedure.exception(throwable);
+                       }
 
-                               T t = processor.tryQuery(this, request);
+                       @Override
+                       public void execute(T t) {
                                result.set(t);
                                procedure.execute(t);
+                       }
 
-                       } catch (Throwable t) {
+               }, listener);
+               
 
-                           if (t instanceof DatabaseException) {
-                               exception.set((DatabaseException)t);
-                               procedure.exception(exception.get());
-                           } else {
-                               exception.set(new DatabaseException(
-                                       "Unexpected exception in ReadGraph.syncRequest(Read)",
-                                       t));
-                               procedure.exception(exception.get());
-                           }
 
-                       }
-
-               }
+//             if (parent != null || listener != null) {
+//
+////                   final ReadGraphImpl newGraph = newSync();
+//                     
+//
+////                   newGraph.waitAsync(request);
+//
+//             } else {
+//
+//                     try {
+//
+//                             T t = processor.tryQuery(this, request);
+//                             result.set(t);
+//                             procedure.execute(t);
+//
+//                     } catch (Throwable t) {
+//
+//                         if (t instanceof DatabaseException) {
+//                             exception.set((DatabaseException)t);
+//                             procedure.exception(exception.get());
+//                         } else {
+//                             exception.set(new DatabaseException(
+//                                     "Unexpected exception in ReadGraph.syncRequest(Read)",
+//                                     t));
+//                             procedure.exception(exception.get());
+//                         }
+//
+//                     }
+//
+//             }
 
                Throwable t = exception.get();
                if (t != null) {
@@ -5406,11 +5408,11 @@ public class ReadGraphImpl implements ReadGraph {
                if (parent != null || listener != null) {
 
                        try {
-                               processor.queryRead(this, request, parent, procedure,
-                                               listener);
-                       } catch (Throwable e) {
+                               processor.query(this, request, parent, procedure,listener);
+                       } catch (DatabaseException e) {
+                               Logger.defaultLogError(e);
                                // This throwable has already been transferred to procedure at this point - do nothing about it
-                               //Logger.defaultLogError("Internal error ", e);
+                               //
                        }
                        
                } else {
@@ -5515,7 +5517,11 @@ public class ReadGraphImpl implements ReadGraph {
 
                if (parent != null || listener != null) {
 
-                       processor.query(this, request, parent, procedure, listener);
+                       try {
+                               processor.query(this, request, parent, procedure, listener);
+                       } catch (DatabaseException e) {
+                               Logger.defaultLogError(e);
+                       }
 
                } else {