/******************************************************************************* * 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.service; import org.simantics.db.DirectStatements; import org.simantics.db.ReadGraph; import org.simantics.db.RelationInfo; import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.SyncContextMultiProcedure; import org.simantics.db.procedure.SyncContextProcedure; import org.simantics.db.procedure.SyncMultiProcedure; import org.simantics.db.procedure.SyncProcedure; public interface DirectQuerySupport { DirectStatements getDirectPersistentStatements(ReadGraph graph, Resource subject); DirectStatements getDirectStatements(ReadGraph graph, Resource subject); // void forEachDirectPersistentStatement(ReadGraph graph, Resource subject, AsyncProcedure procedure); // void forEachDirectStatement(ReadGraph graph, Resource subject, AsyncProcedure procedure); // void forEachDirectStatement(ReadGraph graph, Resource subject, SyncProcedure procedure); // void forEachDirectStatement(ReadGraph graph, Resource subject, Procedure procedure); RelationInfo getRelationInfo(ReadGraph graph, Resource subject) throws DatabaseException; // void forRelationInfo(AsyncReadGraph graph, Resource subject, AsyncProcedure procedure); // void forRelationInfo(AsyncReadGraph graph, Resource subject, SyncProcedure procedure); // void forRelationInfo(AsyncReadGraph graph, Resource subject, Procedure procedure); // void forPossibleType(AsyncReadGraph graph, Resource subject, AsyncProcedure procedure); SyncMultiProcedure compileForEachObject(ReadGraph graph, Resource relation, SyncMultiProcedure user) throws DatabaseException; SyncContextMultiProcedure compileForEachObject(ReadGraph graph, Resource relation, SyncContextMultiProcedure user) throws DatabaseException; SyncProcedure compilePossibleRelatedValue(ReadGraph graph, Resource relation, SyncProcedure user) throws DatabaseException; SyncContextProcedure compilePossibleRelatedValue(ReadGraph graph, Resource relation, SyncContextProcedure user) throws DatabaseException; void forEachObjectCompiled(ReadGraph graph, Resource subject, SyncMultiProcedure procedure); void forEachObjectCompiled(ReadGraph graph, Resource subject, C context, SyncContextMultiProcedure procedure); void forPossibleRelatedValueCompiled(ReadGraph graph, Resource subject, SyncProcedure procedure); void forPossibleRelatedValueCompiled(ReadGraph graph, Resource subject, C context, SyncContextProcedure procedure); void forPossibleDirectType(ReadGraph graph, Resource subject, C context, SyncContextProcedure procedure); }