package org.aksw.jena_sparql_api.batch.reader; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import org.aksw.jena_sparql_api.concepts.Concept; import org.aksw.jena_sparql_api.core.QueryExecutionFactory; 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.springframework.batch.item.data.AbstractPaginatedDataItemReader; import org.apache.jena.graph.Graph; import org.apache.jena.graph.Node; import org.apache.jena.rdf.model.Model; import org.apache.jena.rdf.model.Resource; /** * Item reader that reads a SPARQL SELECT query using pagination * * @author raven * * @param <T> */ public class ItemReaderModel extends AbstractPaginatedDataItemReader<Entry<Resource, Model>> { private Concept concept; private ListService<Concept, Resource, Model> listService; public ItemReaderModel(ListService<Concept, Resource, Model> listService, Concept concept) { setName(this.getClass().getName()); this.listService = listService; this.concept = concept; } @Override protected Iterator<Entry<Resource, Model>> doPageRead() { long limit = (long)this.pageSize; long offset = this.page * this.pageSize; Map<Resource, Model> map = listService.fetchData(concept, limit, offset); Iterator<Entry<Resource, Model>> result = map.entrySet().iterator(); return result; } }