/******************************************************************************* * Copyright (c) 2007, 2018 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.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.StatementProcedure; import org.simantics.db.procedure.SyncMultiProcedure; import org.simantics.db.request.AsyncMultiRead; import org.simantics.db.request.MultiRead; 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, AsyncProcedure> procedure); 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); RelationInfo getRelationInfo(ReadGraphImpl graph, Resource subject) throws DatabaseException; 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; void 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); void query(ReadGraphImpl graph, MultiRead request, CacheEntry parent, SyncMultiProcedure procedure, ListenerBase listener); void query(ReadGraphImpl graph, AsyncMultiRead request, CacheEntry parent, AsyncMultiProcedure procedure, ListenerBase listener); VirtualGraph getProvider(Resource subject, Resource predicate, Resource object); VirtualGraph getProvider(Resource subject, Resource predicate); VirtualGraph getValueProvider(Resource subject); }