]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.common/src/org/simantics/db/common/procedure/adapter/DirectStatementProcedure.java
Utilities for listing of statements in DB
[simantics/platform.git] / bundles / org.simantics.db.common / src / org / simantics / db / common / procedure / adapter / DirectStatementProcedure.java
diff --git a/bundles/org.simantics.db.common/src/org/simantics/db/common/procedure/adapter/DirectStatementProcedure.java b/bundles/org.simantics.db.common/src/org/simantics/db/common/procedure/adapter/DirectStatementProcedure.java
new file mode 100644 (file)
index 0000000..398b185
--- /dev/null
@@ -0,0 +1,32 @@
+package org.simantics.db.common.procedure.adapter;
+
+import org.simantics.db.AsyncReadGraph;
+import org.simantics.db.DirectStatements;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.procedure.AsyncProcedure;
+
+public class DirectStatementProcedure implements AsyncProcedure<DirectStatements> {
+
+       DirectStatements result = null;
+       DatabaseException exception = null;
+
+       @Override
+       public void execute(AsyncReadGraph graph, final DirectStatements ds) {
+               result = ds;
+       }
+
+       @Override
+       public void exception(AsyncReadGraph graph, Throwable throwable) {
+               if(throwable instanceof DatabaseException) {
+                       exception = (DatabaseException)throwable;
+               } else {
+                       exception = new DatabaseException(throwable);
+               }
+       }
+       
+       public DirectStatements getOrThrow() throws DatabaseException {
+               if(exception != null) throw exception;
+               return result;
+       }
+
+}
\ No newline at end of file