]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.interop.mapping/src/org/simantics/interop/mapping/SplittingWriteGraph.java
fixes #4427
[simantics/interop.git] / org.simantics.interop.mapping / src / org / simantics / interop / mapping / SplittingWriteGraph.java
diff --git a/org.simantics.interop.mapping/src/org/simantics/interop/mapping/SplittingWriteGraph.java b/org.simantics.interop.mapping/src/org/simantics/interop/mapping/SplittingWriteGraph.java
deleted file mode 100644 (file)
index fb2cbb5..0000000
+++ /dev/null
@@ -1,6299 +0,0 @@
-package org.simantics.interop.mapping;\r
-\r
-import java.util.Collection;\r
-import java.util.Set;\r
-import java.util.TreeMap;\r
-\r
-import org.simantics.databoard.accessor.Accessor;\r
-import org.simantics.databoard.binding.Binding;\r
-import org.simantics.databoard.type.Datatype;\r
-import org.simantics.databoard.util.binary.RandomAccessBinary;\r
-import org.simantics.db.Metadata;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.Session;\r
-import org.simantics.db.Statement;\r
-import org.simantics.db.VirtualGraph;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.common.request.ReadRequest;\r
-import org.simantics.db.common.request.WriteRequest;\r
-import org.simantics.db.common.request.WriteResultRequest;\r
-import org.simantics.db.exception.AdaptionException;\r
-import org.simantics.db.exception.AssumptionException;\r
-import org.simantics.db.exception.BindingException;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.exception.DoesNotContainValueException;\r
-import org.simantics.db.exception.ManyObjectsForFunctionalRelationException;\r
-import org.simantics.db.exception.NoInverseException;\r
-import org.simantics.db.exception.NoSingleResultException;\r
-import org.simantics.db.exception.ResourceNotFoundException;\r
-import org.simantics.db.exception.ServiceException;\r
-import org.simantics.db.exception.ServiceNotFoundException;\r
-import org.simantics.db.exception.ValidationException;\r
-import org.simantics.db.procedure.AsyncListener;\r
-import org.simantics.db.procedure.AsyncMultiListener;\r
-import org.simantics.db.procedure.AsyncMultiProcedure;\r
-import org.simantics.db.procedure.AsyncProcedure;\r
-import org.simantics.db.procedure.AsyncSetListener;\r
-import org.simantics.db.procedure.Listener;\r
-import org.simantics.db.procedure.MultiListener;\r
-import org.simantics.db.procedure.MultiProcedure;\r
-import org.simantics.db.procedure.Procedure;\r
-import org.simantics.db.procedure.SetListener;\r
-import org.simantics.db.procedure.SyncListener;\r
-import org.simantics.db.procedure.SyncMultiListener;\r
-import org.simantics.db.procedure.SyncMultiProcedure;\r
-import org.simantics.db.procedure.SyncProcedure;\r
-import org.simantics.db.procedure.SyncSetListener;\r
-import org.simantics.db.request.AsyncMultiRead;\r
-import org.simantics.db.request.AsyncRead;\r
-import org.simantics.db.request.DelayedWrite;\r
-import org.simantics.db.request.DelayedWriteResult;\r
-import org.simantics.db.request.ExternalRead;\r
-import org.simantics.db.request.MultiRead;\r
-import org.simantics.db.request.Read;\r
-import org.simantics.db.request.ReadInterface;\r
-import org.simantics.db.request.Write;\r
-import org.simantics.db.request.WriteInterface;\r
-import org.simantics.db.request.WriteOnly;\r
-import org.simantics.db.request.WriteOnlyResult;\r
-import org.simantics.db.request.WriteResult;\r
-import org.simantics.db.request.WriteTraits;\r
-import org.simantics.scl.types.Type;\r
-import org.simantics.utils.datastructures.Callback;\r
-\r
-/**\r
- * This is insane.\r
- * \r
- * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
- *\r
- */\r
-public class SplittingWriteGraph implements WriteGraph {\r
-       \r
-       protected Session session;\r
-       \r
-       \r
-       @Override\r
-       public <T> T getRelatedValue2(final Resource subject, final Resource relation)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(new Read<T>() {\r
-                       @Override\r
-                       public T perform(ReadGraph graph) throws DatabaseException {\r
-                               return graph.getRelatedValue2(subject, relation);\r
-                       }\r
-               });\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public <T> T getRelatedValue2(final Resource subject, final Resource relation, final Binding binding) throws DatabaseException {\r
-               return session.syncRequest(new Read<T>() {\r
-                       @Override\r
-                       public T perform(ReadGraph graph) throws DatabaseException {\r
-                               return graph.getRelatedValue2(subject, relation, binding);\r
-                       }\r
-               });\r
-       }\r
-       \r
-       @Override\r
-       public <T> T getRelatedValue2(final Resource subject, final Resource relation, final Object context) throws DatabaseException {\r
-               return session.syncRequest(new Read<T>() {\r
-                       @Override\r
-                       public T perform(ReadGraph graph) throws DatabaseException {\r
-                               return graph.getRelatedValue2(subject, relation, context);\r
-                       }\r
-               });\r
-       }\r
-       \r
-       @Override\r
-       public <T> T getRelatedValue2(final Resource subject, final Resource relation, final Object context, final Binding binding) throws DatabaseException {\r
-               return session.syncRequest(new Read<T>() {\r
-                       @Override\r
-                       public T perform(ReadGraph graph) throws DatabaseException {\r
-                               return graph.getRelatedValue2(subject, relation, context, binding);\r
-                       }\r
-               });\r
-       }\r
-       \r
-       @Override\r
-       public <T> T getPossibleRelatedValue2(final Resource subject, final Resource relation)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(new Read<T>() {\r
-                       @Override\r
-                       public T perform(ReadGraph graph) throws DatabaseException {\r
-                               return graph.getPossibleRelatedValue2(subject, relation);\r
-                       }\r
-               });\r
-       }\r
-       \r
-       @Override\r
-       public <T> T getPossibleRelatedValue2(final Resource subject, final Resource relation, final Binding binding) throws DatabaseException {\r
-               return session.syncRequest(new Read<T>() {\r
-                       @Override\r
-                       public T perform(ReadGraph graph) throws DatabaseException {\r
-                               return graph.getPossibleRelatedValue2(subject, relation, binding);\r
-                       }\r
-               });\r
-       }\r
-       \r
-       @Override\r
-       public <T> T getPossibleRelatedValue2(final Resource subject, final Resource relation, final Object context) throws DatabaseException {\r
-               return session.syncRequest(new Read<T>() {\r
-                       @Override\r
-                       public T perform(ReadGraph graph) throws DatabaseException {\r
-                               return graph.getPossibleRelatedValue2(subject, relation, context);\r
-                       }\r
-               });\r
-       }\r
-       \r
-       @Override\r
-       public <T> T getPossibleRelatedValue2(final Resource subject, final Resource relation, final Object context, final Binding binding) throws DatabaseException {\r
-               return session.syncRequest(new Read<T>() {\r
-                       @Override\r
-                       public T perform(ReadGraph graph) throws DatabaseException {\r
-                               return graph.getPossibleRelatedValue2(subject, relation, context, binding);\r
-                       }\r
-               });\r
-       }\r
-       \r
-       @Override\r
-       public <T> void async(final ReadInterface<T> r, final AsyncListener<T> procedure) {\r
-               session.async(r, procedure);\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public <T> void async(final ReadInterface<T> r, final AsyncProcedure<T> procedure) {\r
-               session.async(r, procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void async(final ReadInterface<T> r, final Listener<T> procedure) {\r
-               session.async(r, procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void async(final ReadInterface<T> r, final Procedure<T> procedure) {\r
-               session.async(r, procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void async(final ReadInterface<T> r, final SyncListener<T> procedure) {\r
-               session.async(r, procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void async(final ReadInterface<T> r, final SyncProcedure<T> procedure) {\r
-               session.async(r, procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void async(final WriteInterface<T> r) {\r
-               session.async(r);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void async(final WriteInterface<T> r, final Procedure<T> procedure) {\r
-               session.async(r, procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> T sync(final ReadInterface<T> r) throws DatabaseException {\r
-               return session.sync(r);\r
-       }\r
-       \r
-       @Override\r
-       public <T> T sync(final WriteInterface<T> r) throws DatabaseException {\r
-               return session.sync(r);\r
-       }\r
-       \r
-       @Override\r
-       public Resource getRootLibrary() {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getRootLibrary();\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       return null;\r
-               }\r
-       }\r
-       \r
-       \r
-       @Override\r
-       public void clearUndoList(final WriteTraits writeTraits) {\r
-               throw new RuntimeException("Not supported.");\r
-       }\r
-       \r
-       @Override\r
-       public void combineWithPrevious(WriteTraits writeTraits) {\r
-               throw new RuntimeException("Not supported.");\r
-       }\r
-       \r
-       @Override\r
-       public TreeMap<String, byte[]> getMetadata() {\r
-               try {\r
-                       return session.syncRequest(new WriteResultRequest<TreeMap<String, byte[]>>() {\r
-                               \r
-                               @Override\r
-                               public TreeMap<String, byte[]> perform(WriteGraph graph) throws DatabaseException {\r
-                                       return graph.getMetadata();\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       return null;\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public <T extends Metadata> T getMetadata(final Class<T> clazz)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new WriteResultRequest<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(WriteGraph graph) throws DatabaseException {\r
-                                       return graph.getMetadata(clazz);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public Type getRelatedValueType(final Resource subject, final Resource relation)\r
-                       throws DatabaseException {\r
-\r
-               return session.syncRequest(new Read<Type>() {\r
-                       \r
-                       @Override\r
-                       public Type perform(ReadGraph graph) throws DatabaseException {\r
-                               return graph.getRelatedValueType(subject, relation);\r
-                       }\r
-               });\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void deny(final Resource subject, final Resource predicate, final Resource inverse, final Resource object, final VirtualGraph vgraph) throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.deny(subject, predicate, inverse, object, vgraph);\r
-                                       \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       \r
-       \r
-       \r
-       @Override\r
-       public <T> T adaptRelated(final Resource resource, final Resource relation,\r
-                       final Class<T> clazz) throws AdaptionException, NoSingleResultException,\r
-                       ValidationException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.adaptRelated(resource, relation, clazz);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public <T> T getPossibleRelatedAdapter(final Resource resource,\r
-                       final Resource relation, final Class<T> clazz) throws ValidationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getPossibleRelatedAdapter(resource, relation, clazz);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ValidationException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void inc() {\r
-               throw new RuntimeException("Not supported.");\r
-       }\r
-       \r
-       @Override\r
-       public void dec() {\r
-               throw new RuntimeException("Not supported.");\r
-       }\r
-       \r
-       @Override\r
-       public Collection<Resource> getObjects(final Resource subject, final Resource relation) throws ServiceException \r
-                       {\r
-               try {\r
-                       return session.syncRequest(new Read<Collection<Resource>>() {\r
-                               \r
-                               @Override\r
-                               public Collection<Resource> perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getObjects(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public <T extends Accessor> T newLiteral(final Resource resource,\r
-       final Resource predicate, final Datatype datatype, final Object initialValue)\r
-       throws DatabaseException {\r
-               return session.syncRequest(new WriteResultRequest<T>() {\r
-                       \r
-                       @Override\r
-                       public T perform(WriteGraph graph) throws DatabaseException {\r
-                               return graph.newLiteral(resource, predicate, datatype, initialValue);\r
-                       }\r
-               });\r
-       }\r
-\r
-       public RandomAccessBinary createRandomAccessBinary(final Resource resource, final Resource predicate, final Datatype datatype, final Object initialValue) throws DatabaseException {\r
-        return session.syncRequest(new WriteResultRequest<RandomAccessBinary>() {\r
-            @Override\r
-            public RandomAccessBinary perform(WriteGraph graph) throws DatabaseException {\r
-                return graph.createRandomAccessBinary(resource, predicate, datatype, initialValue);\r
-            }\r
-        });\r
-    }\r
-\r
-    public RandomAccessBinary createRandomAccessBinary(final Resource resource, final Datatype datatype, final Object initialValue) throws DatabaseException {\r
-        return session.syncRequest(new WriteResultRequest<RandomAccessBinary>() {\r
-            @Override\r
-            public RandomAccessBinary perform(WriteGraph graph) throws DatabaseException {\r
-                return graph.createRandomAccessBinary(resource, datatype, initialValue);\r
-            }\r
-        });\r
-    }\r
-\r
-       public <T, C> T adaptContextual(final Resource resource, final  C context, final java.lang.Class<C> contextClass, final java.lang.Class<T> clazz) throws AdaptionException ,NoSingleResultException ,ValidationException ,ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.adaptContextual(resource, context, contextClass, clazz);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       };\r
-       \r
-       public <T, C> T getPossibleContextualAdapter(final Resource resource, final C context, final java.lang.Class<C> contextClass, final java.lang.Class<T> clazz) throws ValidationException ,ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getPossibleContextualAdapter(resource, context, contextClass, clazz);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       };\r
-       \r
-       \r
-       public SplittingWriteGraph(Session session) {\r
-               this.session = session;\r
-       }\r
-       \r
-       @Override\r
-       public Resource newResource() throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new WriteResultRequest<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(WriteGraph graph) throws DatabaseException {\r
-                                       return graph.newResource();\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-                \r
-       }\r
-       \r
-       @Override\r
-       public Resource newResource(final long clusterId) throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new WriteResultRequest<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(WriteGraph graph) throws DatabaseException {\r
-                                       return graph.newResource(clusterId);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-    @Override\r
-    public Resource newResource(final Resource clusterSet) throws ServiceException {\r
-        try {\r
-            return session.syncRequest(new WriteResultRequest<Resource>() {\r
-                \r
-                @Override\r
-                public Resource perform(WriteGraph graph) throws DatabaseException {\r
-                    return graph.newResource(clusterSet);\r
-                }\r
-            });\r
-        } catch (DatabaseException e) {\r
-            throw new ServiceException(e);\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public void newClusterSet(final Resource clusterSet) throws ServiceException {\r
-        try {\r
-            session.syncRequest(new WriteRequest() {\r
-                @Override\r
-                public void perform(WriteGraph graph) throws DatabaseException {\r
-                    graph.newClusterSet(clusterSet);\r
-                }\r
-            });\r
-        } catch (DatabaseException e) {\r
-            throw new ServiceException(e);\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public Resource setClusterSet4NewResource(final Resource clusterSet) throws ServiceException {\r
-        try {\r
-            return session.syncRequest(new WriteResultRequest<Resource>() {\r
-                \r
-                @Override\r
-                public Resource perform(WriteGraph graph) throws DatabaseException {\r
-                    return graph.newResource(clusterSet);\r
-                }\r
-            });\r
-        } catch (DatabaseException e) {\r
-            throw new ServiceException(e);\r
-        }\r
-    }\r
-    @Override\r
-       public <T> T adapt(final Resource resource, final Class<T> clazz)\r
-                       throws AdaptionException, ValidationException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.adapt(resource, clazz);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public <T> T adaptUnique(final Resource resource, final Class<T> clazz)\r
-                       throws AdaptionException, ValidationException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.adaptUnique(resource, clazz);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void addLiteral(final Resource resource, final Resource predicate,\r
-                       final Resource inverse, final Object value, final Binding binding)\r
-                       throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.addLiteral(resource, predicate, inverse, value, binding);\r
-                                       \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void addLiteral(final Resource resource, final Resource predicate,\r
-                       final Resource inverse, final Resource type, final Object value, final Binding binding)\r
-                       throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.addLiteral(resource, predicate, inverse, type, value, binding);\r
-                                       \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public <T> void addMetadata(Metadata data) throws ServiceException {\r
-               throw new RuntimeException("Not supported.");\r
-       }\r
-       \r
-       @Override\r
-       @Deprecated\r
-       public void addValue(final Resource resource, final Resource predicate,\r
-                       final Resource inverse, final Resource type, final Object value, final Binding binding)\r
-                       throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.addValue(resource, predicate, inverse, type, value, binding);\r
-                                       \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(final AsyncMultiRead<T> request) {\r
-               session.asyncRequest(request);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncMultiRead<T> request,\r
-                       AsyncMultiListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncMultiRead<T> request,\r
-                       AsyncMultiProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncMultiRead<T> request,\r
-                       MultiListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncMultiRead<T> request,\r
-                       MultiProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncMultiRead<T> request,\r
-                       SyncMultiListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncMultiRead<T> request,\r
-                       SyncMultiProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncRead<T> request) {\r
-               session.asyncRequest(request);  \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncRead<T> request,\r
-                       AsyncListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncRead<T> request,\r
-                       AsyncProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncRead<T> request, Listener<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncRead<T> request,\r
-                       Procedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncRead<T> request,\r
-                       SyncListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(AsyncRead<T> request,\r
-                       SyncProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public void asyncRequest(DelayedWrite request) {\r
-               session.asyncRequest(request);  \r
-       }\r
-       \r
-       @Override\r
-       public void asyncRequest(DelayedWrite request,\r
-                       Callback<DatabaseException> callback) {\r
-               session.asyncRequest(request,callback); \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(DelayedWriteResult<T> r,\r
-                       Procedure<T> procedure) {\r
-               session.asyncRequest(r,procedure);      \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(ExternalRead<T> request) {\r
-               session.asyncRequest(request);  \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(ExternalRead<T> request,\r
-                       Listener<T> procedure) {\r
-               session.asyncRequest(request,procedure);\r
-       }       \r
-       \r
-       @Override\r
-       public <T> void asyncRequest(ExternalRead<T> request,\r
-                       Procedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);\r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(MultiRead<T> request) {\r
-               session.asyncRequest(request);  \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(MultiRead<T> request,\r
-                       AsyncMultiListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(MultiRead<T> request,\r
-                       AsyncMultiProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(MultiRead<T> request,\r
-                       MultiListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(MultiRead<T> request,\r
-                       MultiProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(MultiRead<T> request,\r
-                       SyncMultiListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(MultiRead<T> request,\r
-                       SyncMultiProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(Read<T> request) {\r
-               session.asyncRequest(request);  \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(Read<T> request, AsyncListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(Read<T> request,\r
-                       AsyncProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(Read<T> request, Listener<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(Read<T> request, Procedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(Read<T> request, SyncListener<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(Read<T> request, SyncProcedure<T> procedure) {\r
-               session.asyncRequest(request,procedure);        \r
-       }\r
-       \r
-       @Override\r
-       public void asyncRequest(Write request) {\r
-               session.asyncRequest(request);  \r
-       }\r
-       \r
-       @Override\r
-       public void asyncRequest(Write request,\r
-                       Callback<DatabaseException> callback) {\r
-               session.asyncRequest(request, callback);        \r
-       }\r
-       \r
-       @Override\r
-       public void asyncRequest(WriteOnly r) {\r
-               session.asyncRequest(r);        \r
-       }\r
-       \r
-       @Override\r
-       public void asyncRequest(WriteOnly r,\r
-                       Callback<DatabaseException> callback) {\r
-               session.asyncRequest(r,callback);       \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(WriteOnlyResult<T> r,\r
-                       Procedure<T> procedure) {\r
-               session.asyncRequest(r,procedure);      \r
-       }\r
-       \r
-       @Override\r
-       public <T> void asyncRequest(WriteResult<T> r, Procedure<T> procedure) {\r
-               session.asyncRequest(r,procedure);      \r
-       }\r
-       \r
-       \r
-       \r
-       @Override\r
-       public void claim(final Resource subject, final Resource predicate,\r
-                       final Resource inverse, final Resource object) throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claim(subject, predicate, inverse, object);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void claim(final Resource subject, final Resource predicate, final Resource object)\r
-                       throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claim(subject, predicate, object);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-\r
-       @Override\r
-       public void claimLiteral(final Resource resource, final Resource predicate,\r
-                       final Object value) throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimLiteral(resource, predicate, value);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void claimLiteral(final Resource resource, final Resource predicate,\r
-                       final Object value, final Binding binding) throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimLiteral(resource, predicate, value, binding);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void claimLiteral(final Resource resource, final Resource predicate,\r
-                       final Resource inverse, final Resource type, final Object value)\r
-                       throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimLiteral(resource, predicate, inverse, type, value);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void claimLiteral(final Resource resource, final Resource predicate,\r
-                       final Resource inverse, final Resource type, final Object value, final Binding binding)\r
-                       throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimLiteral(resource, predicate, inverse, type, value, binding);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void claimLiteral(final Resource resource, final Resource predicate,\r
-                       final Resource type, final Object value) throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimLiteral(resource, predicate, type, value);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void claimLiteral(final Resource resource, final Resource predicate,\r
-                       final Resource type, final Object value, final Binding binding)\r
-                       throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimLiteral(resource, predicate, type, value, binding);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void claimValue(final Resource resource, final Object value)\r
-                       throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimValue(resource, value);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void claimValue(final Resource resource, final Object value, final Binding binding)\r
-                       throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimValue(resource, value, binding);     \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @SuppressWarnings("deprecation")\r
-       @Override\r
-       public void claimValue(final Resource resource, final Resource predicate,\r
-                       final Object value) throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimValue(resource, predicate, value);   \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @SuppressWarnings("deprecation")\r
-       @Override\r
-       public void claimValue(final Resource resource, final Resource predicate,\r
-                       final Object value, final Binding binding) throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimValue(resource, predicate, value, binding);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @SuppressWarnings("deprecation")\r
-       @Override\r
-       public void claimValue(final Resource resource, final Resource predicate,\r
-                       final Resource inverse, final Resource type, final Object value, final Binding binding)\r
-                       throws BindingException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.claimValue(resource, predicate, inverse, type, value, binding);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void deny(final Resource subject) throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.deny(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void deny(final Resource subject, final Resource predicate)\r
-                       throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.deny(subject, predicate);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void deny(final Resource subject, final Resource predicate,\r
-                       final Resource inverse, final Resource object) throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.deny(subject, predicate, inverse, object);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void deny(final Resource subject, final Resource predicate, final Resource object)\r
-                       throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.deny(subject, predicate, object);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void deny(final Statement statement) throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.deny(statement);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-\r
-       @Override\r
-       public void denyStatement(final Resource subject, final Resource predicate,\r
-                       final Resource object) throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.denyStatement(subject, predicate, object);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void denyValue(final Resource resource) throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.denyValue(resource);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void denyValue(final Resource resource, final Resource predicate)\r
-                       throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.denyValue(resource, predicate);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void flushCluster() throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.flushCluster();\r
-                                       \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void flushCluster(final Resource r) throws ServiceException {\r
-               try {\r
-                       session.syncRequest(new WriteRequest() {\r
-                               \r
-                               @Override\r
-                               public void perform(WriteGraph graph) throws DatabaseException {\r
-                                       graph.flushCluster(r);\r
-                                       \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public <T> void forAdapted(final Resource resource, final Class<T> clazz,\r
-                       final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public <T> void forAdapted(final Resource resource, final Class<T> clazz,\r
-                       final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public <T> void forAdapted(final Resource resource, final Class<T> clazz,\r
-                       final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public <T> void forAdapted(final Resource resource, final Class<T> clazz,\r
-                       final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public <T> void forAdapted(final Resource resource, final Class<T> clazz,\r
-                       final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public <T> void forAdapted(final Resource resource, final Class<T> clazz,\r
-                       final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forAssertedObjectSet(final Resource subject, final Resource relation,\r
-                       final AsyncSetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAssertedObjectSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void forAssertedObjectSet(final Resource subject, final Resource relation,\r
-                       final SetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAssertedObjectSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forAssertedObjectSet(final Resource subject, final Resource relation,\r
-                       final SyncSetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAssertedObjectSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forAssertedStatementSet(final Resource subject,\r
-                       final Resource relation, final AsyncSetListener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAssertedStatementSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forAssertedStatementSet(final Resource subject,\r
-                       final Resource relation, final SetListener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAssertedStatementSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forAssertedStatementSet(final Resource subject,\r
-                       final Resource relation, final SyncSetListener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forAssertedStatementSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forBuiltin(final String id, final AsyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forBuiltin(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void forBuiltin(final String id, final Listener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forBuiltin(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forBuiltin(final String id, final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forBuiltin(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forBuiltin(final String id, final Procedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forBuiltin(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forBuiltin(final String id, final SyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forBuiltin(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forBuiltin(final String id, final SyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forBuiltin(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forDirectSuperrelations(final Resource subject,\r
-                       final AsyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forDirectSuperrelations(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachAssertedObject(final Resource subject, final Resource relation,\r
-                       final AsyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachAssertedObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachAssertedObject(final Resource subject, final Resource relation,\r
-                       final MultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachAssertedObject(subject, relation, procedure);      \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachAssertedObject(final Resource subject, final Resource relation,\r
-                       final SyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachAssertedObject(subject, relation, procedure);      \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachAssertedStatement(final Resource subject,\r
-                       final Resource relation, final AsyncMultiProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachAssertedStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachAssertedStatement(final Resource subject,\r
-                       final Resource relation, final MultiProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachAssertedStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachAssertedStatement(final Resource subject,\r
-                       final Resource relation, final SyncMultiProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachAssertedStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-//     @Override\r
-//     public void forEachDirectObject(final Resource subject, final Resource relation,\r
-//                     final AsyncMultiProcedure<Resource> procedure) {\r
-//             try {\r
-//                     session.syncRequest(new ReadRequest() {\r
-//                             \r
-//                             @Override\r
-//                             public void run(ReadGraph graph) throws DatabaseException {\r
-//                                     graph.forEachDirectObject(subject, relation, procedure);\r
-//                             }\r
-//                     });\r
-//             } catch (DatabaseException e) {\r
-//                             \r
-//             }\r
-//     }\r
-//     \r
-//     @Override\r
-//     public void forEachDirectObject(final Resource subject, final Resource relation,\r
-//                     final MultiProcedure<Resource> procedure) {\r
-//             try {\r
-//                     session.syncRequest(new ReadRequest() {\r
-//                             \r
-//                             @Override\r
-//                             public void run(ReadGraph graph) throws DatabaseException {\r
-//                                     graph.forEachDirectObject(subject, relation, procedure);\r
-//                             }\r
-//                     });\r
-//             } catch (DatabaseException e) {\r
-//                             \r
-//             }\r
-//     }\r
-//     \r
-//     @Override\r
-//     public void forEachDirectObject(final Resource subject, final Resource relation,\r
-//                     final SyncMultiProcedure<Resource> procedure) {\r
-//             try {\r
-//                     session.syncRequest(new ReadRequest() {\r
-//                             \r
-//                             @Override\r
-//                             public void run(ReadGraph graph) throws DatabaseException {\r
-//                                     graph.forEachDirectObject(subject, relation, procedure);\r
-//                             }\r
-//                     });\r
-//             } catch (DatabaseException e) {\r
-//                             \r
-//             }\r
-//     }\r
-       \r
-       @Override\r
-       public void forEachDirectPredicate(final Resource subject,\r
-                       final AsyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachDirectPredicate(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachDirectPredicate(final Resource subject,\r
-                       final MultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachDirectPredicate(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachDirectPredicate(final Resource subject,\r
-                       final SyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachDirectPredicate(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachObject(final Resource subject, final Resource relation,\r
-                       final AsyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachObject(final Resource subject, final Resource relation,\r
-                       final MultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachObject(final Resource subject, final Resource relation,\r
-                       final SyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachPredicate(final Resource subject,\r
-                       final AsyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachPredicate(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachPredicate(final Resource subject,\r
-                       final MultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachPredicate(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachPredicate(final Resource subject,\r
-                       final SyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachPredicate(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachPrincipalType(final Resource subject,\r
-                       final AsyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachPrincipalType(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachPrincipalType(final Resource subject,\r
-                       final MultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachPrincipalType(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachPrincipalType(final Resource subject,\r
-                       final SyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachPrincipalType(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachStatement(final Resource subject, final Resource relation,\r
-                       final AsyncMultiProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachStatement(final Resource subject, final Resource relation,\r
-                       final MultiProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forEachStatement(final Resource subject, final Resource relation,\r
-                       final SyncMultiProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forEachStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject,\r
-                       final AsyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject,\r
-                       final AsyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, procedure);      \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject,\r
-                       final Listener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, procedure);      \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject,\r
-                       final Procedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-               \r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final AsyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, procedure);    \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final AsyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final Listener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final Procedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, procedure);    \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final Resource object, final AsyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, object, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final Resource object, final AsyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, object, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final Resource object, final Listener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, object, procedure);    \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final Resource object, final Procedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, object, procedure);    \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final Resource object, final SyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, object, procedure);    \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final Resource object, final SyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, object, procedure);    \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final SyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation,  procedure);   \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject, final Resource relation,\r
-                       final SyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject,\r
-                       final SyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject,  procedure);     \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasStatement(final Resource subject,\r
-                       final SyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasStatement(subject,  procedure);     \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasValue(final Resource subject,\r
-                       final AsyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasValue(final Resource subject,\r
-                       final AsyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasValue(subject, procedure);  \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasValue(final Resource subject, final Listener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasValue(subject, procedure);  \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasValue(final Resource subject, final Procedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasValue(subject, procedure);  \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasValue(final Resource subject,\r
-                       final SyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasValue(subject, procedure);  \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forHasValue(final Resource subject,\r
-                       final SyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forHasValue(subject, procedure);  \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public void forInverse(final Resource relation,\r
-                       final AsyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                               \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getService(Class<T> api) throws ServiceNotFoundException {\r
-               return session.getService(api);\r
-       }\r
-\r
-       @Override\r
-       public <T> T peekService(Class<T> api) {\r
-               return session.peekService(api);\r
-       }\r
-\r
-       @Override\r
-       public boolean hasService(Class<?> api) {\r
-               return session.hasService(api);\r
-       }\r
-\r
-       @Override\r
-       public <T> void registerService(Class<T> api, T service) {\r
-               session.registerService(api, service);\r
-       }\r
-\r
-       @Override\r
-       public String getURI(final Resource resource)\r
-                       throws ValidationException,\r
-                       ServiceException, AssumptionException {\r
-               try {\r
-                       return session.syncRequest(new Read<String>() {\r
-                               \r
-                               @Override\r
-                               public String perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getURI(resource);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-               \r
-       }\r
-\r
-       @Override\r
-       public String getPossibleURI(final Resource resource)\r
-                       throws ValidationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<String>() {\r
-                               \r
-                               @Override\r
-                               public String perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getPossibleURI(resource);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Resource getResource(final String uri)\r
-                       throws ResourceNotFoundException, ValidationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getResource(uri);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Resource getPossibleResource(final String uri)\r
-                       throws ResourceNotFoundException, ValidationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getPossibleResource(uri);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Collection<Statement> getStatements(final Resource subject,\r
-                       final Resource relation)\r
-                       throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Collection<Statement>>() {\r
-                               \r
-                               @Override\r
-                               public Collection<Statement> perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getStatements(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Collection<Statement> getAssertedStatements(final Resource subject,\r
-                       final Resource relation)\r
-                       throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Collection<Statement>>() {\r
-                               \r
-                               @Override\r
-                               public Collection<Statement> perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getAssertedStatements(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Collection<Resource> getPredicates(final Resource subject)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Collection<Resource>>() {\r
-                               \r
-                               @Override\r
-                               public Collection<Resource> perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getPredicates(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Collection<Resource> getPrincipalTypes(final Resource subject)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Collection<Resource>>() {\r
-                               \r
-                               @Override\r
-                               public Collection<Resource> perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getPrincipalTypes(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Set<Resource> getTypes(final Resource subject) throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Set<Resource>>() {\r
-                               \r
-                               @Override\r
-                               public Set<Resource> perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getTypes(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Set<Resource> getSupertypes(final Resource subject)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Set<Resource>>() {\r
-                               \r
-                               @Override\r
-                               public Set<Resource> perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getSupertypes(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Set<Resource> getSuperrelations(final Resource subject)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Set<Resource>>() {\r
-                               \r
-                               @Override\r
-                               public Set<Resource> perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getSuperrelations(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       public Resource getPossibleSuperrelation(final Resource subject) throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getPossibleSuperrelation(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-//     @Override\r
-//     public Collection<Resource> getObjects(final Resource subject,\r
-//                     Resource relation)\r
-//                     throws ManyObjectsForFunctionalRelationException,\r
-//                     ServiceException {\r
-//             return graph.getObjects(subject, relation);\r
-//     }\r
-\r
-       @Override\r
-       public Collection<Resource> getAssertedObjects(final Resource subject, final Resource relation)\r
-                       throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Collection<Resource>>() {\r
-                               \r
-                               @Override\r
-                               public Collection<Resource> perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getAssertedObjects(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Resource getInverse(final Resource relation)\r
-                       throws NoInverseException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getInverse(relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Resource getSingleObject(final Resource subject, final Resource relation)\r
-                       throws NoSingleResultException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getSingleObject(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Statement getSingleStatement(final Resource subject, final Resource relation)\r
-                       throws NoSingleResultException,\r
-                       ManyObjectsForFunctionalRelationException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Statement>() {\r
-                               \r
-                               @Override\r
-                               public Statement perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getSingleStatement(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Resource getSingleType(final Resource subject)\r
-                       throws NoSingleResultException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getSingleType(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Resource getSingleType(final Resource subject, final Resource baseType)\r
-                       throws NoSingleResultException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getSingleType(subject, baseType);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getValue(final Resource subject)\r
-                       throws DoesNotContainValueException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getValue(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getValue(final Resource subject, final Binding binding)\r
-                       throws DoesNotContainValueException, BindingException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getValue(subject, binding);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getRelatedValue(final Resource subject, final Resource relation)\r
-                       throws NoSingleResultException, DoesNotContainValueException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getRelatedValue(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getRelatedValue(final Resource subject, final Resource relation,\r
-                       final Binding binding) throws NoSingleResultException,\r
-                       DoesNotContainValueException, BindingException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getRelatedValue(subject, relation, binding);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Resource getPossibleInverse(final Resource relation)\r
-                       throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleInverse(relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Resource getPossibleObject(final Resource subject, final Resource relation)\r
-                       throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleObject(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Statement getPossibleStatement(final Resource subject,\r
-                       final Resource relation)\r
-                       throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Statement>() {\r
-                               \r
-                               @Override\r
-                               public Statement perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleStatement(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Resource getPossibleType(final Resource subject, final Resource baseType)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleType(subject, baseType);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getPossibleValue(final Resource subject) throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleValue(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getPossibleValue(final Resource subject, final Binding binding)\r
-                       throws BindingException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleValue(subject, binding);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getPossibleRelatedValue(final Resource subject, final Resource relation)\r
-                       throws ManyObjectsForFunctionalRelationException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleRelatedValue(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final Binding binding)\r
-                       throws ManyObjectsForFunctionalRelationException,\r
-                       BindingException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleRelatedValue(subject, relation, binding);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getPossibleAdapter(final Resource resource, final Class<T> clazz)\r
-                       throws ValidationException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleAdapter(resource, clazz);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> T getPossibleUniqueAdapter(final Resource resource, final Class<T> clazz)\r
-                       throws ValidationException, ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getPossibleUniqueAdapter(resource, clazz);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public boolean isInstanceOf(final Resource resource, final Resource type)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Boolean>() {\r
-                               \r
-                               @Override\r
-                               public Boolean perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.isInstanceOf(resource, type);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public boolean isInheritedFrom(final Resource resource, final Resource type)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Boolean>() {\r
-                               \r
-                               @Override\r
-                               public Boolean perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.isInheritedFrom(resource, type);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public boolean isSubrelationOf(final Resource resource, final Resource relation)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Boolean>() {\r
-                               \r
-                               @Override\r
-                               public Boolean perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.isSubrelationOf(resource, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public boolean hasStatement(final Resource subject) throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Boolean>() {\r
-                               \r
-                               @Override\r
-                               public Boolean perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.hasStatement(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public boolean hasStatement(final Resource subject, final Resource relation)\r
-                       throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Boolean>() {\r
-                               \r
-                               @Override\r
-                               public Boolean perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.hasStatement(subject, relation);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public boolean hasStatement(final Resource subject, final Resource relation,\r
-                       final Resource object) throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Boolean>() {\r
-                               \r
-                               @Override\r
-                               public Boolean perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.hasStatement(subject, relation, object);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public boolean hasValue(final Resource subject) throws ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Boolean>() {\r
-                               \r
-                               @Override\r
-                               public Boolean perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.hasValue(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public Datatype getDataType(final Resource subject) throws DatabaseException {\r
-               try {\r
-                       return session.syncRequest(new Read<Datatype>() {\r
-                               \r
-                               @Override\r
-                               public Datatype perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getDataType(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T extends Accessor> T getAccessor(final Resource subject)\r
-                       throws DatabaseException {\r
-               try {\r
-                       return session.syncRequest(new Read<T>() {\r
-                               \r
-                               @Override\r
-                               public T perform(ReadGraph graph) throws DatabaseException {\r
-               return graph.getAccessor(subject);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       throw new ServiceException(e);\r
-               }\r
-       }\r
-\r
-    @Override\r
-    public RandomAccessBinary getRandomAccessBinary(final Resource subject)\r
-    throws DatabaseException {\r
-        try {\r
-            return session.syncRequest(new Read<RandomAccessBinary>() {\r
-                @Override\r
-                public RandomAccessBinary perform(ReadGraph graph) throws DatabaseException {\r
-                    return graph.getRandomAccessBinary(subject);\r
-                }\r
-            });\r
-        } catch (DatabaseException e) {\r
-            throw new ServiceException(e);\r
-        }\r
-    }\r
-\r
-    @Override\r
-       public <T> T syncRequest(Read<T> request) throws DatabaseException {\r
-               return session.syncRequest(request);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(Read<T> request, AsyncListener<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(Read<T> request, SyncListener<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(Read<T> request, Listener<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(Read<T> request, AsyncProcedure<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(Read<T> request, SyncProcedure<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(Read<T> request, Procedure<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(AsyncRead<T> request) throws DatabaseException {\r
-               return session.syncRequest(request);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(AsyncRead<T> request,\r
-                       AsyncListener<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(AsyncRead<T> request, SyncListener<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(AsyncRead<T> request, Listener<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(AsyncRead<T> request,\r
-                       AsyncProcedure<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(AsyncRead<T> request,\r
-                       SyncProcedure<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(AsyncRead<T> request, Procedure<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(MultiRead<T> request)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(MultiRead<T> request,\r
-                       AsyncMultiListener<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(MultiRead<T> request,\r
-                       SyncMultiListener<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(MultiRead<T> request,\r
-                       MultiListener<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(MultiRead<T> request,\r
-                       AsyncMultiProcedure<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(MultiRead<T> request,\r
-                       SyncMultiProcedure<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(MultiRead<T> request,\r
-                       MultiProcedure<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(AsyncMultiRead<T> request)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(AsyncMultiRead<T> request,\r
-                       AsyncMultiListener<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(AsyncMultiRead<T> request,\r
-                       SyncMultiListener<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(AsyncMultiRead<T> request,\r
-                       MultiListener<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(AsyncMultiRead<T> request,\r
-                       AsyncMultiProcedure<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(AsyncMultiRead<T> request,\r
-                       SyncMultiProcedure<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> Collection<T> syncRequest(AsyncMultiRead<T> request,\r
-                       MultiProcedure<T> procedure) throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(ExternalRead<T> request)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(ExternalRead<T> request, Listener<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(ExternalRead<T> request, Procedure<T> procedure)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request, procedure);\r
-       }\r
-\r
-       @Override\r
-       public void syncRequest(Write request) throws DatabaseException {\r
-               session.syncRequest(request);\r
-       }\r
-\r
-       @Override\r
-       public void syncRequest(DelayedWrite request) throws DatabaseException {\r
-               session.syncRequest(request);\r
-       }\r
-\r
-       @Override\r
-       public void syncRequest(WriteOnly r) throws DatabaseException {\r
-               session.syncRequest(r);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(WriteResult<T> request)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(DelayedWriteResult<T> request)\r
-                       throws DatabaseException {\r
-               return session.syncRequest(request);\r
-       }\r
-\r
-       @Override\r
-       public <T> T syncRequest(WriteOnlyResult<T> r) throws DatabaseException {\r
-               return session.syncRequest(r);\r
-       }\r
-\r
-       @Override\r
-       public void forURI(final Resource resource, final AsyncListener<String> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forURI(resource, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forURI(final Resource resource, final SyncListener<String> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forURI(resource, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forURI(final Resource resource, final Listener<String> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forURI(resource, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forURI(final Resource resource, final AsyncProcedure<String> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forURI(resource, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forURI(final Resource resource, final SyncProcedure<String> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forURI(resource, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forURI(final Resource resource, final Procedure<String> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forURI(resource, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forResource(final String id, final AsyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forResource(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forResource(final String id, final SyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forResource(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forResource(final String id, final Listener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forResource(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forResource(final String id, final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forResource(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forResource(final String id, final SyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forResource(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forResource(final String id, final Procedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forResource(id, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forStatementSet(final Resource subject, final Resource relation,\r
-                       final AsyncSetListener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forStatementSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forStatementSet(final Resource subject, final Resource relation,\r
-                       final SyncSetListener<Statement> procedure) {\r
-               \r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forStatementSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forStatementSet(final Resource subject, final Resource relation,\r
-                       final SetListener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forStatementSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPredicateSet(final Resource subject,\r
-                       final AsyncSetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPredicateSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPredicateSet(final Resource subject,\r
-                       final SyncSetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPredicateSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPredicateSet(final Resource subject,\r
-                       final SetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPredicateSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPrincipalTypeSet(final Resource subject,\r
-                       final AsyncSetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPrincipalTypeSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPrincipalTypeSet(final Resource subject,\r
-                       final SyncSetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forPrincipalTypeSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPrincipalTypeSet(final Resource subject,\r
-                       final SetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPrincipalTypeSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forTypes(final Resource subject,\r
-                       final AsyncListener<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forTypes(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forTypes(final Resource subject,\r
-                       final SyncListener<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forTypes(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forTypes(final Resource subject, final Listener<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forTypes(subject, procedure);             \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forTypes(final Resource subject,\r
-                       final AsyncProcedure<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forTypes(subject, procedure);             \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forTypes(final Resource subject,\r
-                       final SyncProcedure<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forTypes(subject, procedure);             \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forTypes(final Resource subject,\r
-                       final Procedure<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forTypes(subject, procedure);     \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSupertypes(final Resource subject,\r
-                       final AsyncListener<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSupertypes(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSupertypes(final Resource subject,\r
-                       final SyncListener<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSupertypes(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSupertypes(final Resource subject,\r
-                       final Listener<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSupertypes(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSupertypes(final Resource subject,\r
-                       final AsyncProcedure<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSupertypes(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSupertypes(final Resource subject,\r
-                       final SyncProcedure<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSupertypes(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSupertypes(final Resource subject,\r
-                       final Procedure<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSupertypes(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleSuperrelation(final Resource subject,\r
-                       final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleSuperrelation(subject, procedure);     \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSuperrelations(final Resource subject,\r
-                       final AsyncListener<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSuperrelations(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSuperrelations(final Resource subject,\r
-                       final SyncListener<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSuperrelations(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSuperrelations(final Resource subject,\r
-                       final Listener<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSuperrelations(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSuperrelations(final Resource subject,\r
-                       final AsyncProcedure<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSuperrelations(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSuperrelations(final Resource subject,\r
-                       final SyncProcedure<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSuperrelations(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSuperrelations(final Resource subject,\r
-                       final Procedure<Set<Resource>> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSuperrelations(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forObjectSet(final Resource subject, final Resource relation,\r
-                       final AsyncSetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forObjectSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forObjectSet(final Resource subject, final Resource relation,\r
-                       final SyncSetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forObjectSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forObjectSet(final Resource subject, final Resource relation,\r
-                       final SetListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forObjectSet(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forInverse(final Resource relation,\r
-                       final SyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forInverse(final Resource relation, final Listener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forInverse(final Resource relation,\r
-                       final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forInverse(final Resource relation,\r
-                       final SyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forInverse(final Resource relation, final Procedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleObject(final Resource subject, final Resource relation,\r
-                       final AsyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleObject(final Resource subject, final Resource relation,\r
-                       final SyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleObject(final Resource subject, final Resource relation,\r
-                       final Listener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleObject(subject, relation, procedure);            \r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleObject(final Resource subject, final Resource relation,\r
-                       final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleObject(final Resource subject, final Resource relation,\r
-                       final SyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleObject(final Resource subject, final Resource relation,\r
-                       final Procedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleStatement(final Resource subject, final Resource relation,\r
-                       final AsyncListener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleStatement(final Resource subject, final Resource relation,\r
-                       final SyncListener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleStatement(final Resource subject, final Resource relation,\r
-                       final Listener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forSingleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-                               \r
-       }\r
-\r
-       @Override\r
-       public void forSingleStatement(final Resource subject, final Resource relation,\r
-                       final AsyncProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleStatement(final Resource subject, final Resource relation,\r
-                       final SyncProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleStatement(final Resource subject, final Resource relation,\r
-                       final Procedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject,\r
-                       final AsyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject,\r
-                       final SyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject, final Listener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject,\r
-                       final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject,\r
-                       final SyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject,\r
-                       final Procedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject, final Resource baseType,\r
-                       final AsyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject, final Resource baseType,\r
-                       final SyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject, final Resource baseType,\r
-                       final Listener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject, final Resource baseType,\r
-                       final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject, final Resource baseType,\r
-                       final SyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forSingleType(final Resource subject, final Resource baseType,\r
-                       final Procedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forSingleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final Binding binding,\r
-                       final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final Binding binding,\r
-                       final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final Binding binding,\r
-                       final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final Binding binding,\r
-                       final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final Binding binding,\r
-                       final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forValue(final Resource subject, final Binding binding,\r
-                       final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forValue(subject, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final Binding binding, final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final Binding binding, final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final Binding binding, final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final Binding binding, final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final Binding binding, final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forRelatedValue(final Resource subject, final Resource relation,\r
-                       final Binding binding, final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forUniqueAdapted(final Resource resource, final Class<T> clazz,\r
-                       final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forUniqueAdapted(final Resource resource, final Class<T> clazz,\r
-                       final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forUniqueAdapted(final Resource resource, final Class<T> clazz,\r
-                       final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forUniqueAdapted(final Resource resource, final Class<T> clazz,\r
-                       final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forUniqueAdapted(final Resource resource, final Class<T> clazz,\r
-                       final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forUniqueAdapted(final Resource resource, final Class<T> clazz,\r
-                       final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleInverse(final Resource relation,\r
-                       final AsyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleInverse(final Resource relation,\r
-                       final SyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleInverse(final Resource relation,\r
-                       final Listener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleInverse(final Resource relation,\r
-                       final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleInverse(final Resource relation,\r
-                       final SyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleInverse(final Resource relation,\r
-                       final Procedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleInverse(relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleObject(final Resource subject, final Resource relation,\r
-                       final AsyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleObject(final Resource subject, final Resource relation,\r
-                       final SyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleObject(final Resource subject, final Resource relation,\r
-                       final Listener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleObject(final Resource subject, final Resource relation,\r
-                       final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleObject(final Resource subject, final Resource relation,\r
-                       final SyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleObject(final Resource subject, final Resource relation,\r
-                       final Procedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleObject(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleStatement(final Resource subject, final Resource relation,\r
-                       final AsyncListener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleStatement(final Resource subject, final Resource relation,\r
-                       final SyncListener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleStatement(final Resource subject, final Resource relation,\r
-                       final Listener<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleStatement(final Resource subject, final Resource relation,\r
-                       final AsyncProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleStatement(final Resource subject, final Resource relation,\r
-                       final SyncProcedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleStatement(final Resource subject, final Resource relation,\r
-                       final Procedure<Statement> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleStatement(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleType(final Resource subject, final Resource baseType,\r
-                       final AsyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleType(final Resource subject, final Resource baseType,\r
-                       final SyncListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleType(final Resource subject, final Resource baseType,\r
-                       final Listener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleType(final Resource subject, final Resource baseType,\r
-                       final AsyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleType(final Resource subject, final Resource baseType,\r
-                       final SyncProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forPossibleType(final Resource subject, final Resource baseType,\r
-                       final Procedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleType(subject, baseType, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject,\r
-                       final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject,\r
-                       final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject, final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject,\r
-                       final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject,\r
-                       final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject,\r
-                       final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject, final Binding binding,\r
-                       final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject, final Binding binding,\r
-                       final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject, final Binding binding,\r
-                       final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject, final Binding binding,\r
-                       final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject, final Binding binding,\r
-                       final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleValue(final Resource subject, final Binding binding,\r
-                       final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleValue(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final Binding binding, final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final Binding binding, final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final Binding binding, final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final Binding binding, final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final Binding binding, final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleRelatedValue(final Resource subject,\r
-                       final Resource relation, final Binding binding, final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleRelatedValue(subject, relation, binding, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleAdapted(final Resource resource, final Class<T> clazz,\r
-                       final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleAdapted(final Resource resource, final Class<T> clazz,\r
-                       final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleAdapted(final Resource resource, final Class<T> clazz,\r
-                       final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleAdapted(final Resource resource, final Class<T> clazz,\r
-                       final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleAdapted(final Resource resource, final Class<T> clazz,\r
-                       final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleAdapted(final Resource resource, final Class<T> clazz,\r
-                       final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleUniqueAdapted(final Resource resource,\r
-                       final Class<T> clazz, final AsyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleUniqueAdapted(final Resource resource,\r
-                       final Class<T> clazz, final SyncListener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleUniqueAdapted(final Resource resource,\r
-                       final Class<T> clazz, final Listener<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleUniqueAdapted(final Resource resource,\r
-                       final Class<T> clazz, final AsyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleUniqueAdapted(final Resource resource,\r
-                       final Class<T> clazz, final SyncProcedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public <T> void forPossibleUniqueAdapted(final Resource resource,\r
-                       final Class<T> clazz, final Procedure<T> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forPossibleUniqueAdapted(resource, clazz, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInstanceOf(final Resource resource, final Resource type,\r
-                       final AsyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInstanceOf(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInstanceOf(final Resource resource, final Resource type,\r
-                       final SyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInstanceOf(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInstanceOf(final Resource resource, final Resource type,\r
-                       final Listener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInstanceOf(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInstanceOf(final Resource resource, final Resource type,\r
-                       final AsyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInstanceOf(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInstanceOf(final Resource resource, final Resource type,\r
-                       final SyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInstanceOf(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInstanceOf(final Resource resource, final Resource type,\r
-                       final Procedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInstanceOf(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInheritedFrom(final Resource resource, final Resource type,\r
-                       final AsyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInheritedFrom(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInheritedFrom(final Resource resource, final Resource type,\r
-                       final SyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInheritedFrom(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInheritedFrom(final Resource resource, final Resource type,\r
-                       final Listener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInheritedFrom(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInheritedFrom(final Resource resource, final Resource type,\r
-                       final AsyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInheritedFrom(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInheritedFrom(final Resource resource, final Resource type,\r
-                       final SyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInheritedFrom(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsInheritedFrom(final Resource resource, final Resource type,\r
-                       final Procedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsInheritedFrom(resource, type, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsSubrelationOf(final Resource resource, final Resource relation,\r
-                       final AsyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsSubrelationOf(resource, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsSubrelationOf(final Resource resource, final Resource relation,\r
-                       final SyncListener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsSubrelationOf(resource, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsSubrelationOf(final Resource resource, final Resource relation,\r
-                       final Listener<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsSubrelationOf(resource, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsSubrelationOf(final Resource resource, final Resource relation,\r
-                       final AsyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsSubrelationOf(resource, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsSubrelationOf(final Resource resource, final Resource relation,\r
-                       final SyncProcedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsSubrelationOf(resource, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forIsSubrelationOf(final Resource resource, final Resource relation,\r
-                       final Procedure<Boolean> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forIsSubrelationOf(resource, relation, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forOrderedSet(final Resource subject,\r
-                       final AsyncMultiListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forOrderedSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forOrderedSet(final Resource subject,\r
-                       final SyncMultiListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forOrderedSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forOrderedSet(final Resource subject,\r
-                       final MultiListener<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forOrderedSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forOrderedSet(final Resource subject,\r
-                       final AsyncMultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forOrderedSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forOrderedSet(final Resource subject,\r
-                       final SyncMultiProcedure<Resource> procedure) {\r
-               \r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-                                       graph.forOrderedSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public void forOrderedSet(final Resource subject,\r
-                       final MultiProcedure<Resource> procedure) {\r
-               try {\r
-                       session.syncRequest(new ReadRequest() {\r
-                               \r
-                               @Override\r
-                               public void run(ReadGraph graph) throws DatabaseException {\r
-               graph.forOrderedSet(subject, procedure);\r
-                               }\r
-                       });\r
-               } catch (DatabaseException e) {\r
-                       \r
-               }\r
-       }\r
-\r
-       @Override\r
-       public int thread() {\r
-               return -1;\r
-       }\r
-\r
-       @Override\r
-       public Session getSession() {\r
-               return session;\r
-       }\r
-\r
-       @Override\r
-       public Resource getBuiltin(final String id) throws ResourceNotFoundException,\r
-                       ServiceException {\r
-               try {\r
-                       return session.syncRequest(new Read<Resource>() {\r
-                               \r
-                               @Override\r
-                               public Resource perform(ReadGraph graph) throws DatabaseException {\r
-                                       return graph.getBuiltin(id);\r
-                               }\r
-                               });\r
-                       } catch (DatabaseException e) {\r
-                               throw new ServiceException(e);\r
-                       }\r
-       }\r
-       \r
-       @Override\r
-       public VirtualGraph getProvider() {\r
-               return null;\r
-       }\r
-\r
-       @Override\r
-       public boolean isImmutable(final Resource resource) throws DatabaseException {\r
-           try {\r
-               return session.syncRequest(new Read<Boolean>() {\r
-                   @Override\r
-                   public Boolean perform(ReadGraph graph) throws DatabaseException {\r
-                       return graph.isImmutable(resource);\r
-                   }\r
-               });\r
-           } catch (DatabaseException e) {\r
-               throw new ServiceException(e);\r
-           }\r
-       }\r
-\r
-    @Override\r
-    public <T> T getValue2(final Resource subject, final Object context) throws DatabaseException {\r
-        try {\r
-            return (T) session.syncRequest(new Read<T>() {\r
-                @Override\r
-                public T perform(ReadGraph graph) throws DatabaseException {\r
-                    return graph.getValue2(subject, context);\r
-                }\r
-            });\r
-        } catch (DatabaseException e) {\r
-            throw new ServiceException(e);\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public <T> T getPossibleValue2(final Resource subject, final Object context) throws DatabaseException {\r
-        try {\r
-            return (T) session.syncRequest(new Read<T>() {\r
-                @Override\r
-                public T perform(ReadGraph graph) throws DatabaseException {\r
-                    return graph.getPossibleValue2(subject, context);\r
-                }\r
-            });\r
-        } catch (DatabaseException e) {\r
-            throw new ServiceException(e);\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public <T> T getValue2(final Resource subject, final Object context, final Binding binding) throws DatabaseException {\r
-        try {\r
-            return (T) session.syncRequest(new Read<T>() {\r
-                @Override\r
-                public T perform(ReadGraph graph) throws DatabaseException {\r
-                    return graph.getValue2(subject, context, binding);\r
-                }\r
-            });\r
-        } catch (DatabaseException e) {\r
-            throw new ServiceException(e);\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public <T> T getPossibleValue2(final Resource subject, final Object context, final Binding binding) throws DatabaseException {\r
-        try {\r
-            return (T) session.syncRequest(new Read<T>() {\r
-                @Override\r
-                public T perform(ReadGraph graph) throws DatabaseException {\r
-                    return graph.getPossibleValue2(subject, context, binding);\r
-                }\r
-            });\r
-        } catch (DatabaseException e) {\r
-            throw new ServiceException(e);\r
-        }\r
-    }\r
-\r
-}\r