1 package org.simantics.db.impl.graph;
\r
3 import org.simantics.db.Resource;
\r
4 import org.simantics.db.exception.DatabaseException;
\r
5 import org.simantics.db.exception.NoSingleResultException;
\r
6 import org.simantics.db.impl.query.IntProcedure;
\r
7 import org.simantics.db.impl.query.QueryProcessor;
\r
9 public class SingleObjectProcedure implements IntProcedure {
\r
11 final private QueryProcessor processor;
\r
12 private DatabaseException exception;
\r
13 private Resource result;
\r
15 public SingleObjectProcedure(QueryProcessor processor) {
\r
16 this.processor = processor;
\r
20 public void execute(ReadGraphImpl graph, int i) {
\r
21 Resource resource = processor.querySupport.getResource(i);
\r
22 if(result != null) {
\r
23 exception = new NoSingleResultException("");
\r
30 public void finished(ReadGraphImpl graph) {
\r
31 if(result == null) exception = new NoSingleResultException("");
\r
35 public void exception(ReadGraphImpl graph, Throwable throwable) {
\r
36 if(throwable instanceof DatabaseException) exception = (DatabaseException)throwable;
\r
37 else throwable = new DatabaseException(throwable);
\r
40 public Resource get() throws DatabaseException {
\r
41 if(exception != null) throw exception;
\r