package org.aksw.jena_sparql_api.batch;
import java.util.Map;
import org.aksw.jena_sparql_api.concepts.Concept;
import org.aksw.jena_sparql_api.core.QueryExecutionFactory;
import org.aksw.jena_sparql_api.core.utils.ServiceUtils;
import org.aksw.jena_sparql_api.lookup.CountInfo;
import org.aksw.jena_sparql_api.lookup.ListService;
import org.aksw.jena_sparql_api.lookup.ListServiceUtils;
import org.aksw.jena_sparql_api.mapper.MappedConcept;
import org.aksw.jena_sparql_api.shape.ResourceShape;
import org.apache.jena.graph.Node;
import org.apache.jena.sparql.core.DatasetGraph;
public class ListServiceResourceShape
implements ListService<Concept, Node, DatasetGraph>
{
private QueryExecutionFactory qef;
private ResourceShape resourceShape;
private boolean isLeftJoin;
public ListServiceResourceShape(QueryExecutionFactory qef,
ResourceShape resourceShape,
boolean isLeftJoin) {
super();
this.qef = qef;
this.resourceShape = resourceShape;
this.isLeftJoin = isLeftJoin;
}
@Override
public Map<Node, DatasetGraph> fetchData(Concept concept, Long limit, Long offset) {
MappedConcept<DatasetGraph> mappedConcept = ResourceShape.createMappedConcept2(resourceShape, concept, false);
ListService<Concept, Node, DatasetGraph> ls = ListServiceUtils.createListServiceMappedConcept(qef, mappedConcept, isLeftJoin);
Map<Node, DatasetGraph> result = ls.fetchData(concept, limit, offset);
return result;
}
@Override
public CountInfo fetchCount(Concept concept, Long itemLimit, Long rowLimit) {
CountInfo result = ServiceUtils.fetchCountConcept(qef, concept, itemLimit, rowLimit);
return result;
}
public static ListServiceResourceShape create(QueryExecutionFactory qef, ResourceShape resourceShape, boolean isLeftJoin) {
ListServiceResourceShape result = new ListServiceResourceShape(qef, resourceShape, isLeftJoin);
return result;
}
}