package org.aksw.jena_sparql_api.mapper.impl.engine; import java.util.Collection; import java.util.List; import java.util.Map; import org.aksw.jena_sparql_api.concepts.Concept; import org.aksw.jena_sparql_api.core.SparqlService; import org.aksw.jena_sparql_api.mapper.impl.type.PathResolver; import org.aksw.jena_sparql_api.mapper.model.RdfTypeFactory; import org.aksw.jena_sparql_api.mapper.model.ShapeExposable; import org.aksw.jena_sparql_api.mapper.model.TypeDecider; import org.apache.jena.graph.Node; import org.apache.jena.rdf.model.RDFNode; import org.apache.jena.sparql.core.Prologue; public interface RdfMapperEngine { SparqlService getSparqlService(); Prologue getPrologue(); RdfTypeFactory getRdfTypeFactory(); TypeDecider getTypeDecider(); //<T> LookupService<Node, T> getLookupService(Class<T> clazz); <T> T find(Class<T> clazz, Node rootNode); //List<T> list(Class<T> clazz); <T> List<T> list(Class<T> clazz, Concept concept); <T> T merge(T entity); <T> T merge(T entity, Node node); void remove(Object entity); void remove(Node node, Class<?> clazz); // void emitTriples(Graph outGraph, Object entity); // void emitTriples(Graph outGraph, Object entity, Node node); // This method should probably not go here Map<Node, RDFNode> fetch(ShapeExposable shapeSupplier, Collection<Node> nodes); public PathResolver createResolver(Class<?> javaClass); //PathResolver getRelation(Path path); }