X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db%2Fsrc%2Forg%2Fsimantics%2Fdb%2FAsyncReadGraph.java;fp=bundles%2Forg.simantics.db%2Fsrc%2Forg%2Fsimantics%2Fdb%2FAsyncReadGraph.java;h=ab4314247578b46e2ce247ad4ec318d1ac2592d9;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db/src/org/simantics/db/AsyncReadGraph.java b/bundles/org.simantics.db/src/org/simantics/db/AsyncReadGraph.java new file mode 100644 index 000000000..ab4314247 --- /dev/null +++ b/bundles/org.simantics.db/src/org/simantics/db/AsyncReadGraph.java @@ -0,0 +1,1138 @@ +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.db; + +import java.util.Set; + +import org.simantics.databoard.binding.Binding; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.procedure.AsyncListener; +import org.simantics.db.procedure.AsyncMultiListener; +import org.simantics.db.procedure.AsyncMultiProcedure; +import org.simantics.db.procedure.AsyncProcedure; +import org.simantics.db.procedure.AsyncSetListener; +import org.simantics.db.procedure.Listener; +import org.simantics.db.procedure.MultiListener; +import org.simantics.db.procedure.MultiProcedure; +import org.simantics.db.procedure.Procedure; +import org.simantics.db.procedure.SetListener; +import org.simantics.db.procedure.SyncListener; +import org.simantics.db.procedure.SyncMultiListener; +import org.simantics.db.procedure.SyncMultiProcedure; +import org.simantics.db.procedure.SyncProcedure; +import org.simantics.db.procedure.SyncSetListener; +import org.simantics.db.request.MultiRead; +import org.simantics.db.request.Read; + +/** + * + * For accessing and manipulating the graph data in asynchronous manner. A client + * receives AsyncReadGraph instances for performing requests in {@link Read} and + * {@link MultiRead} as well as for reacting to request results using + * {@link AsyncProcedure}, {@link AsyncListener}, {@link AsyncMultiProcedure}, + * {@link AsyncMultiListener} and {@link AsyncSetListener} + *

+ * AsyncReadGraph instances are stateful and may not be stored and used outside the + * supplier method activation. The methods receiving AsyncReadGraph should not block for long + * periods of time since that may delay the processing of other requests. For a + * synchronous counterpart with the same functionality as AsyncReadGraph see + * {@link ReadGraph} + * + * @version 0.7 + * @author Antti Villberg + * @see RequestProcessor + * @see AsyncRequestProcessor + * @see ReadGraph + * @see Resource + * @see Statement + */ +public interface AsyncReadGraph extends AsyncRequestProcessor { + + /** + * @see ReadGraph#getURI(Resource) + */ + void forURI(Resource resource, AsyncListener procedure); + /** + * @see ReadGraph#getURI(Resource) + */ + void forURI(Resource resource, SyncListener procedure); + /** + * @see ReadGraph#getURI(Resource) + */ + void forURI(Resource resource, Listener procedure); + /** + * @see ReadGraph#getURI(Resource) + */ + void forURI(Resource resource, AsyncProcedure procedure); + /** + * @see ReadGraph#getURI(Resource) + */ + void forURI(Resource resource, SyncProcedure procedure); + /** + * @see ReadGraph#getURI(Resource) + */ + void forURI(Resource resource, Procedure procedure); + + /** + * @see ReadGraph#getResourceByURI(String) + */ + void forResource(String id, AsyncListener procedure); + /** + * @see ReadGraph#getResourceByURI(String) + */ + void forResource(String id, SyncListener procedure); + /** + * @see ReadGraph#getResourceByURI(String) + */ + void forResource(String id, Listener procedure); + /** + * @see ReadGraph#getResourceByURI(String) + */ + void forResource(String id, AsyncProcedure procedure); + /** + * @see ReadGraph#getResourceByURI(String) + */ + void forResource(String id, SyncProcedure procedure); + /** + * @see ReadGraph#getResourceByURI(String) + */ + void forResource(String id, Procedure procedure); + + /** + * @see ReadGraph#getBuiltin(String) + */ + void forBuiltin(String id, AsyncListener procedure); + /** + * @see ReadGraph#getBuiltin(String) + */ + void forBuiltin(String id, SyncListener procedure); + /** + * @see ReadGraph#getBuiltin(String) + */ + void forBuiltin(String id, Listener procedure); + /** + * @see ReadGraph#getBuiltin(String) + */ + void forBuiltin(String id, AsyncProcedure procedure); + /** + * @see ReadGraph#getBuiltin(String) + */ + void forBuiltin(String id, SyncProcedure procedure); + /** + * @see ReadGraph#getBuiltin(String) + */ + void forBuiltin(String id, Procedure procedure); + + /** + * @see ReadGraph#getStatements(Resource, Resource) + */ + void forEachStatement(Resource subject, Resource relation, AsyncMultiProcedure procedure); + /** + * @see ReadGraph#getStatements(Resource, Resource) + */ + void forEachStatement(Resource subject, Resource relation, SyncMultiProcedure procedure); + /** + * @see ReadGraph#getStatements(Resource, Resource) + */ + void forEachStatement(Resource subject, Resource relation, MultiProcedure procedure); + + /** + * @see ReadGraph#getStatements(Resource, Resource) + */ + void forStatementSet(Resource subject, Resource relation, AsyncSetListener procedure); + /** + * @see ReadGraph#getStatements(Resource, Resource) + */ + void forStatementSet(Resource subject, Resource relation, SyncSetListener procedure); + /** + * @see ReadGraph#getStatements(Resource, Resource) + */ + void forStatementSet(Resource subject, Resource relation, SetListener procedure); + + /** + * @see ReadGraph#getAssertedStatements(Resource, Resource) + */ + void forEachAssertedStatement(Resource subject, Resource relation, AsyncMultiProcedure procedure); + /** + * @see ReadGraph#getAssertedStatements(Resource, Resource) + */ + void forEachAssertedStatement(Resource subject, Resource relation, SyncMultiProcedure procedure); + /** + * @see ReadGraph#getAssertedStatements(Resource, Resource) + */ + void forEachAssertedStatement(Resource subject, Resource relation, MultiProcedure procedure); + + /** + * @see ReadGraph#getAssertedStatements(Resource, Resource) + */ + void forAssertedStatementSet(Resource subject, Resource relation, AsyncSetListener procedure); + /** + * @see ReadGraph#getAssertedStatements(Resource, Resource) + */ + void forAssertedStatementSet(Resource subject, Resource relation, SyncSetListener procedure); + /** + * @see ReadGraph#getAssertedStatements(Resource, Resource) + */ + void forAssertedStatementSet(Resource subject, Resource relation, SetListener procedure); + + /** + * @see ReadGraph#getPredicates(Resource) + */ + void forEachPredicate(Resource subject, AsyncMultiProcedure procedure); + /** + * @see ReadGraph#getPredicates(Resource) + */ + void forEachPredicate(Resource subject, SyncMultiProcedure procedure); + /** + * @see ReadGraph#getPredicates(Resource) + */ + void forEachPredicate(Resource subject, MultiProcedure procedure); + + /** + * @see ReadGraph#getPredicates(Resource) + */ + void forPredicateSet(Resource subject, AsyncSetListener procedure); + /** + * @see ReadGraph#getPredicates(Resource) + */ + void forPredicateSet(Resource subject, SyncSetListener procedure); + /** + * @see ReadGraph#getPredicates(Resource) + */ + void forPredicateSet(Resource subject, SetListener procedure); + + /** + * @see ReadGraph#getPrincipalTypes(Resource) + */ + void forEachPrincipalType(Resource subject, AsyncMultiProcedure procedure); + /** + * @see ReadGraph#getPrincipalTypes(Resource) + */ + void forEachPrincipalType(Resource subject, SyncMultiProcedure procedure); + /** + * @see ReadGraph#getPrincipalTypes(Resource) + */ + void forEachPrincipalType(Resource subject, MultiProcedure procedure); + + /** + * @see ReadGraph#getPrincipalTypes(Resource) + */ + void forPrincipalTypeSet(Resource subject, AsyncSetListener procedure); + /** + * @see ReadGraph#getPrincipalTypes(Resource) + */ + void forPrincipalTypeSet(Resource subject, SyncSetListener procedure); + /** + * @see ReadGraph#getPrincipalTypes(Resource) + */ + void forPrincipalTypeSet(Resource subject, SetListener procedure); + + /** + * @see ReadGraph#getTypes(Resource) + */ + void forTypes(Resource subject, AsyncListener> procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forTypes(Resource subject, SyncListener> procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forTypes(Resource subject, Listener> procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forTypes(Resource subject, AsyncProcedure> procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forTypes(Resource subject, SyncProcedure> procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forTypes(Resource subject, Procedure> procedure); + + /** + * @see ReadGraph#getSupertypes(Resource) + */ + void forSupertypes(Resource subject, AsyncListener> procedure); + /** + * @see ReadGraph#getSupertypes(Resource) + */ + void forSupertypes(Resource subject, SyncListener> procedure); + /** + * @see ReadGraph#getSupertypes(Resource) + */ + void forSupertypes(Resource subject, Listener> procedure); + /** + * @see ReadGraph#getSupertypes(Resource) + */ + void forSupertypes(Resource subject, AsyncProcedure> procedure); + /** + * @see ReadGraph#getSupertypes(Resource) + */ + void forSupertypes(Resource subject, SyncProcedure> procedure); + /** + * @see ReadGraph#getSupertypes(Resource) + */ + void forSupertypes(Resource subject, Procedure> procedure); + + /** + * @see ReadGraph#getSuperrelations(Resource) + */ + void forDirectSuperrelations(Resource subject, AsyncMultiProcedure procedure); + + /** + * @see ReadGraph#getSuperrelations(Resource) + */ + void forPossibleSuperrelation(Resource subject, AsyncProcedure procedure); + + /** + * @see ReadGraph#getSuperrelations(Resource) + */ + void forSuperrelations(Resource subject, AsyncListener> procedure); + /** + * @see ReadGraph#getSuperrelations(Resource) + */ + void forSuperrelations(Resource subject, SyncListener> procedure); + /** + * @see ReadGraph#getSuperrelations(Resource) + */ + void forSuperrelations(Resource subject, Listener> procedure); + /** + * @see ReadGraph#getSuperrelations(Resource) + */ + void forSuperrelations(Resource subject, AsyncProcedure> procedure); + /** + * @see ReadGraph#getSuperrelations(Resource) + */ + void forSuperrelations(Resource subject, SyncProcedure> procedure); + /** + * @see ReadGraph#getSuperrelations(Resource) + */ + void forSuperrelations(Resource subject, Procedure> procedure); + + /** + * + * If relation is functional this do one of the following + * -call execute 0 or 1 times and then call finished + * -call exception with ManyObjectsForFunctionalRelation + * + * @see ReadGraph#getObjects(Resource, Resource) + */ + void forEachObject(Resource subject, Resource relation, AsyncMultiProcedure procedure); + /** + * @see ReadGraph#getObjects(Resource, Resource) + */ + void forEachObject(Resource subject, Resource relation, SyncMultiProcedure procedure); + /** + * @see ReadGraph#getObjects(Resource, Resource) + */ + void forEachObject(Resource subject, Resource relation, MultiProcedure procedure); + + /** + * @see ReadGraph#getObjects(Resource, Resource) + */ +// void forEachDirectObject(Resource subject, Resource relation, AsyncMultiProcedure procedure); +// /** +// * @see ReadGraph#getObjects(Resource, Resource) +// */ +// void forEachDirectObject(Resource subject, Resource relation, SyncMultiProcedure procedure); +// /** +// * @see ReadGraph#getObjects(Resource, Resource) +// */ +// void forEachDirectObject(Resource subject, Resource relation, MultiProcedure procedure); + + /** + * @see ReadGraph#getObjects(Resource, Resource) + */ + void forEachDirectPredicate(Resource subject, AsyncMultiProcedure procedure); + /** + * @see ReadGraph#getObjects(Resource, Resource) + */ + void forEachDirectPredicate(Resource subject, SyncMultiProcedure procedure); + /** + * @see ReadGraph#getObjects(Resource, Resource) + */ + void forEachDirectPredicate(Resource subject, MultiProcedure procedure); + + /** + * @see ReadGraph#getObjects(Resource, Resource) + */ + void forObjectSet(Resource subject, Resource relation, AsyncSetListener procedure); + /** + * @see ReadGraph#getObjects(Resource, Resource) + */ + void forObjectSet(Resource subject, Resource relation, SyncSetListener procedure); + /** + * @see ReadGraph#getObjects(Resource, Resource) + */ + void forObjectSet(Resource subject, Resource relation, SetListener procedure); + + /** + * @see ReadGraph#getAssertedObjects(Resource, Resource) + */ + void forEachAssertedObject(Resource subject, Resource relation, AsyncMultiProcedure procedure); + /** + * @see ReadGraph#getAssertedObjects(Resource, Resource) + */ + void forEachAssertedObject(Resource subject, Resource relation, SyncMultiProcedure procedure); + /** + * @see ReadGraph#getAssertedObjects(Resource, Resource) + */ + void forEachAssertedObject(Resource subject, Resource relation, MultiProcedure procedure); + + /** + * @see ReadGraph#getAssertedObjects(Resource, Resource) + */ + void forAssertedObjectSet(Resource subject, Resource relation, AsyncSetListener procedure); + /** + * @see ReadGraph#getAssertedObjects(Resource, Resource) + */ + void forAssertedObjectSet(Resource subject, Resource relation, SyncSetListener procedure); + /** + * @see ReadGraph#getAssertedObjects(Resource, Resource) + */ + void forAssertedObjectSet(Resource subject, Resource relation, SetListener procedure); + + /** + * @see ReadGraph#getInverse(Resource) + */ + void forInverse(Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#getInverse(Resource) + */ + void forInverse(Resource relation, SyncListener procedure); + /** + * @see ReadGraph#getInverse(Resource) + */ + void forInverse(Resource relation, Listener procedure); + /** + * @see ReadGraph#getInverse(Resource) + */ + void forInverse(Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#getInverse(Resource) + */ + void forInverse(Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#getInverse(Resource) + */ + void forInverse(Resource relation, Procedure procedure); + + /** + * @see ReadGraph#getSingleObject(Resource, Resource) + */ + void forSingleObject(Resource subject, Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#getSingleObject(Resource, Resource) + */ + void forSingleObject(Resource subject, Resource relation, SyncListener procedure); + /** + * @see ReadGraph#getSingleObject(Resource, Resource) + */ + void forSingleObject(Resource subject, Resource relation, Listener procedure); + /** + * @see ReadGraph#getSingleObject(Resource, Resource) + */ + void forSingleObject(Resource subject, Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#getSingleObject(Resource, Resource) + */ + void forSingleObject(Resource subject, Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#getSingleObject(Resource, Resource) + */ + void forSingleObject(Resource subject, Resource relation, Procedure procedure); + + /** + * @see ReadGraph#getSingleStatement(Resource, Resource) + */ + void forSingleStatement(Resource subject, Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#getSingleStatement(Resource, Resource) + */ + void forSingleStatement(Resource subject, Resource relation, SyncListener procedure); + /** + * @see ReadGraph#getSingleStatement(Resource, Resource) + */ + void forSingleStatement(Resource subject, Resource relation, Listener procedure); + /** + * @see ReadGraph#getSingleStatement(Resource, Resource) + */ + void forSingleStatement(Resource subject, Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#getSingleStatement(Resource, Resource) + */ + void forSingleStatement(Resource subject, Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#getSingleStatement(Resource, Resource) + */ + void forSingleStatement(Resource subject, Resource relation, Procedure procedure); + + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, AsyncListener procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, SyncListener procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, Listener procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, AsyncProcedure procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, SyncProcedure procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, Procedure procedure); + + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, Resource baseType, AsyncListener procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, Resource baseType, SyncListener procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, Resource baseType, Listener procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, Resource baseType, AsyncProcedure procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, Resource baseType, SyncProcedure procedure); + /** + * @see ReadGraph#getSingleType(Resource, Resource) + */ + void forSingleType(Resource subject, Resource baseType, Procedure procedure); + + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, AsyncListener procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, SyncListener procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, Listener procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, AsyncProcedure procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, SyncProcedure procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, Procedure procedure); + + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, Binding binding, AsyncListener procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, Binding binding, SyncListener procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, Binding binding, Listener procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, Binding binding, AsyncProcedure procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, Binding binding, SyncProcedure procedure); + /** + * @see ReadGraph#getValue(Resource) + */ + void forValue(Resource subject, Binding binding, Procedure procedure); + + /** + * @see ReadGraph#getRelatedValue(Resource, Resource) + */ + void forRelatedValue(Resource subject, Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource) + */ + void forRelatedValue(Resource subject, Resource relation, SyncListener procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource) + */ + void forRelatedValue(Resource subject, Resource relation, Listener procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource) + */ + void forRelatedValue(Resource subject, Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource) + */ + void forRelatedValue(Resource subject, Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource) + */ + void forRelatedValue(Resource subject, Resource relation, Procedure procedure); + + /** + * @see ReadGraph#getRelatedValue(Resource, Resource, Binding) + */ + void forRelatedValue(Resource subject, Resource relation, Binding binding, AsyncListener procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource, Binding) + */ + void forRelatedValue(Resource subject, Resource relation, Binding binding, SyncListener procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource, Binding) + */ + void forRelatedValue(Resource subject, Resource relation, Binding binding, Listener procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource, Binding) + */ + void forRelatedValue(Resource subject, Resource relation, Binding binding, AsyncProcedure procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource, Binding) + */ + void forRelatedValue(Resource subject, Resource relation, Binding binding, SyncProcedure procedure); + /** + * @see ReadGraph#getRelatedValue(Resource, Resource, Binding) + */ + void forRelatedValue(Resource subject, Resource relation, Binding binding, Procedure procedure); + + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forAdapted(Resource resource, Class clazz, AsyncListener procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forAdapted(Resource resource, Class clazz, SyncListener procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forAdapted(Resource resource, Class clazz, Listener procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forAdapted(Resource resource, Class clazz, AsyncProcedure procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forAdapted(Resource resource, Class clazz, SyncProcedure procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forAdapted(Resource resource, Class clazz, Procedure procedure); + + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forUniqueAdapted(Resource resource, Class clazz, AsyncListener procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forUniqueAdapted(Resource resource, Class clazz, SyncListener procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forUniqueAdapted(Resource resource, Class clazz, Listener procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forUniqueAdapted(Resource resource, Class clazz, AsyncProcedure procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forUniqueAdapted(Resource resource, Class clazz, SyncProcedure procedure); + /** + * @see ReadGraph#adapt(Resource, Class) + */ + void forUniqueAdapted(Resource resource, Class clazz, Procedure procedure); + + /** + * @see ReadGraph#getPossibleInverse(Resource) + */ + void forPossibleInverse(Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleInverse(Resource) + */ + void forPossibleInverse(Resource relation, SyncListener procedure); + /** + * @see ReadGraph#getPossibleInverse(Resource) + */ + void forPossibleInverse(Resource relation, Listener procedure); + /** + * @see ReadGraph#getPossibleInverse(Resource) + */ + void forPossibleInverse(Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleInverse(Resource) + */ + void forPossibleInverse(Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleInverse(Resource) + */ + void forPossibleInverse(Resource relation, Procedure procedure); + + /** + * @see ReadGraph#getPossibleObject(Resource, Resource) + */ + void forPossibleObject(Resource subject, Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleObject(Resource, Resource) + */ + void forPossibleObject(Resource subject, Resource relation, SyncListener procedure); + /** + * @see ReadGraph#getPossibleObject(Resource, Resource) + */ + void forPossibleObject(Resource subject, Resource relation, Listener procedure); + /** + * @see ReadGraph#getPossibleObject(Resource, Resource) + */ + void forPossibleObject(Resource subject, Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleObject(Resource, Resource) + */ + void forPossibleObject(Resource subject, Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleObject(Resource, Resource) + */ + void forPossibleObject(Resource subject, Resource relation, Procedure procedure); + + /** + * @see ReadGraph#getPossibleStatement(Resource, Resource) + */ + void forPossibleStatement(Resource subject, Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleStatement(Resource, Resource) + */ + void forPossibleStatement(Resource subject, Resource relation, SyncListener procedure); + /** + * @see ReadGraph#getPossibleStatement(Resource, Resource) + */ + void forPossibleStatement(Resource subject, Resource relation, Listener procedure); + /** + * @see ReadGraph#getPossibleStatement(Resource, Resource) + */ + void forPossibleStatement(Resource subject, Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleStatement(Resource, Resource) + */ + void forPossibleStatement(Resource subject, Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleStatement(Resource, Resource) + */ + void forPossibleStatement(Resource subject, Resource relation, Procedure procedure); + + /** + * @see ReadGraph#getPossibleType(Resource, Resource) + */ + void forPossibleType(Resource subject, Resource baseType, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleType(Resource, Resource) + */ + void forPossibleType(Resource subject, Resource baseType, SyncListener procedure); + /** + * @see ReadGraph#getPossibleType(Resource, Resource) + */ + void forPossibleType(Resource subject, Resource baseType, Listener procedure); + /** + * @see ReadGraph#getPossibleType(Resource, Resource) + */ + void forPossibleType(Resource subject, Resource baseType, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleType(Resource, Resource) + */ + void forPossibleType(Resource subject, Resource baseType, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleType(Resource, Resource) + */ + void forPossibleType(Resource subject, Resource baseType, Procedure procedure); + + /** + * @see ReadGraph#getPossibleValue(Resource) + */ + void forPossibleValue(Resource subject, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleValue(Resource) + */ + void forPossibleValue(Resource subject, SyncListener procedure); + /** + * @see ReadGraph#getPossibleValue(Resource) + */ + void forPossibleValue(Resource subject, Listener procedure); + /** + * @see ReadGraph#getPossibleValue(Resource) + */ + void forPossibleValue(Resource subject, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleValue(Resource) + */ + void forPossibleValue(Resource subject, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleValue(Resource) + */ + void forPossibleValue(Resource subject, Procedure procedure); + + /** + * @see ReadGraph#getPossibleValue(Resource, Binding) + */ + void forPossibleValue(Resource subject, Binding binding, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleValue(Resource, Binding) + */ + void forPossibleValue(Resource subject, Binding binding, SyncListener procedure); + /** + * @see ReadGraph#getPossibleValue(Resource, Binding) + */ + void forPossibleValue(Resource subject, Binding binding, Listener procedure); + /** + * @see ReadGraph#getPossibleValue(Resource, Binding) + */ + void forPossibleValue(Resource subject, Binding binding, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleValue(Resource, Binding) + */ + void forPossibleValue(Resource subject, Binding binding, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleValue(Resource, Binding) + */ + void forPossibleValue(Resource subject, Binding binding, Procedure procedure); + + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, SyncListener procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, Listener procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, Procedure procedure); + + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource, Binding) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, Binding binding, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource, Binding) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, Binding binding, SyncListener procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource, Binding) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, Binding binding, Listener procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource, Binding) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, Binding binding, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource, Binding) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, Binding binding, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleRelatedValue(Resource, Resource, Binding) + */ + void forPossibleRelatedValue(Resource subject, Resource relation, Binding binding, Procedure procedure); + + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleAdapted(Resource resource, Class clazz, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleAdapted(Resource resource, Class clazz, SyncListener procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleAdapted(Resource resource, Class clazz, Listener procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleAdapted(Resource resource, Class clazz, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleAdapted(Resource resource, Class clazz, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleAdapted(Resource resource, Class clazz, Procedure procedure); + + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleUniqueAdapted(Resource resource, Class clazz, AsyncListener procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleUniqueAdapted(Resource resource, Class clazz, SyncListener procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleUniqueAdapted(Resource resource, Class clazz, Listener procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleUniqueAdapted(Resource resource, Class clazz, AsyncProcedure procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleUniqueAdapted(Resource resource, Class clazz, SyncProcedure procedure); + /** + * @see ReadGraph#getPossibleAdapter(Resource, Class) + */ + void forPossibleUniqueAdapted(Resource resource, Class clazz, Procedure procedure); + + /** + * @see ReadGraph#isInstanceOf(Resource, Resource) + */ + void forIsInstanceOf(Resource resource, Resource type, AsyncListener procedure); + /** + * @see ReadGraph#isInstanceOf(Resource, Resource) + */ + void forIsInstanceOf(Resource resource, Resource type, SyncListener procedure); + /** + * @see ReadGraph#isInstanceOf(Resource, Resource) + */ + void forIsInstanceOf(Resource resource, Resource type, Listener procedure); + /** + * @see ReadGraph#isInstanceOf(Resource, Resource) + */ + void forIsInstanceOf(Resource resource, Resource type, AsyncProcedure procedure); + /** + * @see ReadGraph#isInstanceOf(Resource, Resource) + */ + void forIsInstanceOf(Resource resource, Resource type, SyncProcedure procedure); + /** + * @see ReadGraph#isInstanceOf(Resource, Resource) + */ + void forIsInstanceOf(Resource resource, Resource type, Procedure procedure); + + /** + * @see ReadGraph#isInheritedFrom(Resource, Resource) + */ + void forIsInheritedFrom(Resource resource, Resource type, AsyncListener procedure); + /** + * @see ReadGraph#isInheritedFrom(Resource, Resource) + */ + void forIsInheritedFrom(Resource resource, Resource type, SyncListener procedure); + /** + * @see ReadGraph#isInheritedFrom(Resource, Resource) + */ + void forIsInheritedFrom(Resource resource, Resource type, Listener procedure); + /** + * @see ReadGraph#isInheritedFrom(Resource, Resource) + */ + void forIsInheritedFrom(Resource resource, Resource type, AsyncProcedure procedure); + /** + * @see ReadGraph#isInheritedFrom(Resource, Resource) + */ + void forIsInheritedFrom(Resource resource, Resource type, SyncProcedure procedure); + /** + * @see ReadGraph#isInheritedFrom(Resource, Resource) + */ + void forIsInheritedFrom(Resource resource, Resource type, Procedure procedure); + + /** + * @see ReadGraph#isSubrelationOf(Resource, Resource) + */ + void forIsSubrelationOf(Resource resource, Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#isSubrelationOf(Resource, Resource) + */ + void forIsSubrelationOf(Resource resource, Resource relation, SyncListener procedure); + /** + * @see ReadGraph#isSubrelationOf(Resource, Resource) + */ + void forIsSubrelationOf(Resource resource, Resource relation, Listener procedure); + /** + * @see ReadGraph#isSubrelationOf(Resource, Resource) + */ + void forIsSubrelationOf(Resource resource, Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#isSubrelationOf(Resource, Resource) + */ + void forIsSubrelationOf(Resource resource, Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#isSubrelationOf(Resource, Resource) + */ + void forIsSubrelationOf(Resource resource, Resource relation, Procedure procedure); + + /** + * @see ReadGraph#hasStatement(Resource) + */ + void forHasStatement(Resource subject, AsyncListener procedure); + /** + * @see ReadGraph#hasStatement(Resource) + */ + void forHasStatement(Resource subject, SyncListener procedure); + /** + * @see ReadGraph#hasStatement(Resource) + */ + void forHasStatement(Resource subject, Listener procedure); + /** + * @see ReadGraph#hasStatement(Resource) + */ + void forHasStatement(Resource subject, AsyncProcedure procedure); + /** + * @see ReadGraph#hasStatement(Resource) + */ + void forHasStatement(Resource subject, SyncProcedure procedure); + /** + * @see ReadGraph#hasStatement(Resource) + */ + void forHasStatement(Resource subject, Procedure procedure); + + /** + * @see ReadGraph#hasStatement(Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, AsyncListener procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, SyncListener procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, Listener procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, AsyncProcedure procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, SyncProcedure procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, Procedure procedure); + + /** + * @see ReadGraph#hasStatement(Resource, Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, Resource object, AsyncListener procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, Resource object, SyncListener procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, Resource object, Listener procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, Resource object, AsyncProcedure procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, Resource object, SyncProcedure procedure); + /** + * @see ReadGraph#hasStatement(Resource, Resource, Resource) + */ + void forHasStatement(Resource subject, Resource relation, Resource object, Procedure procedure); + + /** + * @see ReadGraph#hasValue(Resource) + */ + void forHasValue(Resource subject, AsyncListener procedure); + /** + * @see ReadGraph#hasValue(Resource) + */ + void forHasValue(Resource subject, SyncListener procedure); + /** + * @see ReadGraph#hasValue(Resource) + */ + void forHasValue(Resource subject, Listener procedure); + /** + * @see ReadGraph#hasValue(Resource) + */ + void forHasValue(Resource subject, AsyncProcedure procedure); + /** + * @see ReadGraph#hasValue(Resource) + */ + void forHasValue(Resource subject, SyncProcedure procedure); + /** + * @see ReadGraph#hasValue(Resource) + */ + void forHasValue(Resource subject, Procedure procedure); + + /** + * @see ReadGraph#getTypes(Resource) + */ + void forOrderedSet(Resource subject, AsyncMultiListener procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forOrderedSet(Resource subject, SyncMultiListener procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forOrderedSet(Resource subject, MultiListener procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forOrderedSet(Resource subject, AsyncMultiProcedure procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forOrderedSet(Resource subject, SyncMultiProcedure procedure); + /** + * @see ReadGraph#getTypes(Resource) + */ + void forOrderedSet(Resource subject, MultiProcedure procedure); + + int thread(); +// void inc(); +// void dec(); + + boolean isImmutable(Resource resource) throws DatabaseException; + +}