X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2Fgraph%2FReadGraphSupport.java;fp=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2Fgraph%2FReadGraphSupport.java;h=82cab4fede9a5fe194f4f2c7a471a2a069c08fcd;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/ReadGraphSupport.java b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/ReadGraphSupport.java new file mode 100644 index 000000000..82cab4fed --- /dev/null +++ b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/ReadGraphSupport.java @@ -0,0 +1,101 @@ +/******************************************************************************* + * 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.impl.graph; + +import java.util.Set; + +import org.simantics.db.DirectStatements; +import org.simantics.db.RelationInfo; +import org.simantics.db.Resource; +import org.simantics.db.Session; +import org.simantics.db.Statement; +import org.simantics.db.VirtualGraph; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.impl.query.CacheEntry; +import org.simantics.db.impl.query.IntSet; +import org.simantics.db.procedure.AsyncMultiProcedure; +import org.simantics.db.procedure.AsyncProcedure; +import org.simantics.db.procedure.AsyncSetListener; +import org.simantics.db.procedure.ListenerBase; +import org.simantics.db.procedure.MultiProcedure; +import org.simantics.db.procedure.Procedure; +import org.simantics.db.procedure.StatementProcedure; +import org.simantics.db.request.AsyncMultiRead; +import org.simantics.db.request.AsyncRead; +import org.simantics.db.request.ExternalRead; +import org.simantics.db.request.MultiRead; +import org.simantics.db.request.Read; + +public interface ReadGraphSupport { + + Session getSession(); + + void forPossibleObject(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncProcedure procedure); + + void forEachPredicate(ReadGraphImpl graph, Resource subject, AsyncMultiProcedure procedure); + void forEachPredicate(ReadGraphImpl graph, Resource subject, MultiProcedure procedure); + IntSet getPredicates(ReadGraphImpl graph, Resource subject) throws Throwable; + + void forEachStatement(ReadGraphImpl graph, Resource subject, Resource predicate, MultiProcedure procedure); + void forEachStatement(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncMultiProcedure procedure); + void forEachStatement(ReadGraphImpl graph, Resource subject, Resource predicate, StatementProcedure procedure); + void forStatementSet(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncSetListener procedure); + void forAssertedStatementSet(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncSetListener procedure); + void forEachAssertedStatement(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncMultiProcedure procedure); + void forEachObject(ReadGraphImpl graph, Resource subject, Resource predicate, MultiProcedure procedure); + void forEachObject(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncMultiProcedure procedure); + void forEachDirectPredicate(ReadGraphImpl graph, Resource subject, AsyncMultiProcedure procedure); + void forEachDirectStatement(ReadGraphImpl graph, Resource subject, Procedure procedure); + void forEachDirectStatement(ReadGraphImpl graph, Resource subject, AsyncProcedure procedure, boolean ignoreVirtual); + void forObjectSet(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncSetListener procedure); + void forPredicateSet(ReadGraphImpl graph, Resource subject, AsyncSetListener procedure); + void forPrincipalTypeSet(ReadGraphImpl graph, Resource subject, AsyncSetListener procedure); + void forEachAssertedObject(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncMultiProcedure procedure); + void forAssertedObjectSet(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncSetListener procedure); + void forEachPrincipalType(ReadGraphImpl graph, Resource subject, AsyncMultiProcedure procedure); + void forEachPrincipalType(ReadGraphImpl graph, Resource subject, MultiProcedure procedure); + + void forRelationInfo(ReadGraphImpl graph, Resource subject, AsyncProcedure procedure); + void forTypes(ReadGraphImpl graph, Resource subject, AsyncProcedure> procedure); + IntSet getTypes(ReadGraphImpl graph, Resource subject) throws Throwable; + void forSupertypes(ReadGraphImpl graph, Resource subject, AsyncProcedure> procedure); + void forDirectSuperrelations(ReadGraphImpl graph, Resource subject, AsyncMultiProcedure procedure); + void forPossibleSuperrelation(ReadGraphImpl graph, Resource subject, AsyncProcedure procedure); + void forSuperrelations(ReadGraphImpl graph, Resource subject, AsyncProcedure> procedure); + byte[] getValue(ReadGraphImpl graph, Resource subject) throws DatabaseException; + byte[] forValue(ReadGraphImpl graph, Resource subject, AsyncProcedure procedure); + void forPossibleValue(ReadGraphImpl graph, Resource subject, AsyncProcedure procedure); + void forInverse(ReadGraphImpl graph, Resource relation, AsyncProcedure procedure); + void forResource(ReadGraphImpl graph, String id, AsyncProcedure procedure); + void forBuiltin(ReadGraphImpl graph, String id, AsyncProcedure procedure); + + void forHasStatement(ReadGraphImpl graph, Resource subject, AsyncProcedure procedure); + void forHasStatement(ReadGraphImpl graph, Resource subject, Resource predicate, AsyncProcedure procedure); + void forHasStatement(ReadGraphImpl graph, Resource subject, Resource predicate, Resource object, AsyncProcedure procedure); + + void forHasValue(ReadGraphImpl graph, Resource subject, AsyncProcedure procedure); + void forOrderedSet(ReadGraphImpl graph, Resource subject, AsyncMultiProcedure procedure); + + T queryRead(ReadGraphImpl graph, Read request, CacheEntry parent, AsyncProcedure procedure, ListenerBase listener) throws Throwable; + void query(ReadGraphImpl graph, MultiRead request, CacheEntry parent, AsyncMultiProcedure procedure, ListenerBase listener); + void query(ReadGraphImpl graph, AsyncRead request, CacheEntry parent, AsyncProcedure procedure, ListenerBase listener); + void query(ReadGraphImpl graph, AsyncMultiRead request, CacheEntry parent, AsyncMultiProcedure procedure, ListenerBase listener); + void query(ReadGraphImpl graph, ExternalRead request, CacheEntry parent, Procedure procedure, ListenerBase listener); + + T tryQuery(final ReadGraphImpl graph, final Read request) throws DatabaseException; + void tryQuery(final ReadGraphImpl graph, final AsyncRead request, final AsyncProcedure procedure); + + VirtualGraph getProvider(Resource subject, Resource predicate, Resource object); + VirtualGraph getProvider(Resource subject, Resource predicate); + VirtualGraph getValueProvider(Resource subject); + +}