package org.aksw.jena_sparql_api.pagination.core;
import java.util.Iterator;
import org.aksw.jena_sparql_api.core.QueryExecutionFactory;
import org.aksw.jena_sparql_api.core.QueryExecutionFactoryBackQuery;
import org.aksw.jena_sparql_api.http.QueryExecutionFactoryHttp;
import org.apache.jena.query.Query;
import org.apache.jena.query.QueryExecution;
/**
* @author Claus Stadler
* <p/>
* Date: 7/26/11
* Time: 11:41 PM
*/
public class QueryExecutionFactoryIterated
extends QueryExecutionFactoryBackQuery
{
private QueryExecutionFactory decoratee;
private QueryTransformer queryTransformer;
private boolean breakOnEmptyResult;
public QueryExecutionFactoryIterated(QueryExecutionFactory decoratee, QueryTransformer queryTransformer, boolean breakOnEmptyResult) {
this.decoratee = decoratee;
this.queryTransformer = queryTransformer;
this.breakOnEmptyResult = breakOnEmptyResult;
}
@Override
public QueryExecution createQueryExecution(Query query) {
Iterator<Query> queryIterator = queryTransformer.transform(query);
return new QueryExecutionIterated(query, decoratee, queryIterator, breakOnEmptyResult);
}
@Override
public String getId() {
return decoratee.getId();
}
@Override
public String getState() {
return decoratee.getState();
}
public static void main(String[] args) {
QueryExecutionFactory factory = new QueryExecutionFactoryHttp("http://linkedgeodata.org/sparql", "http://linkedgeodata.org");
QueryExecutionFactoryPaginated fp = new QueryExecutionFactoryPaginated(factory, 10000);
System.out.println(fp.getPageSize());
/*
QueryExecution qe = fp.createQueryExecution(CannedQueryUtils.spoTemplate());
ResultSet rs = qe.execSelect();
while(rs.hasNext()) {
System.out.println(rs.next());
}
qe.close();
*/
}
}