package org.aksw.jena_sparql_api.delay.core; import java.util.Iterator; import org.aksw.jena_sparql_api.core.QueryExecutionDecorator; import org.aksw.jena_sparql_api.delay.extra.Delayer; import org.apache.jena.graph.Triple; import org.apache.jena.query.QueryExecution; import org.apache.jena.query.ResultSet; import org.apache.jena.rdf.model.Model; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Claus Stadler * <p/> * Date: 7/26/11 Time: 10:57 AM */ public class QueryExecutionDelay extends QueryExecutionDecorator { private static final Logger logger = LoggerFactory .getLogger(QueryExecutionDelay.class); private Delayer delayer; public QueryExecutionDelay(QueryExecution decoratee, Delayer delayer) { super(decoratee); this.delayer = delayer; } protected void doDelay() { try { delayer.doDelay(); } catch(InterruptedException e) { logger.warn("Interrupted: ", e); } } @Override public ResultSet execSelect() { doDelay(); return super.execSelect(); } @Override public Model execConstruct() { doDelay(); return super.execConstruct(); } @Override public Model execConstruct(Model model) { doDelay(); return super.execConstruct(model); } @Override public Model execDescribe() { doDelay(); return super.execDescribe(); } @Override public Model execDescribe(Model model) { doDelay(); return super.execDescribe(model); } @Override public boolean execAsk() { doDelay(); return super.execAsk(); } @Override public Iterator<Triple> execConstructTriples() { doDelay(); return super.execConstructTriples(); } @Override public Iterator<Triple> execDescribeTriples() { doDelay(); return super.execConstructTriples(); } }