Class QueryResultIteration
- java.lang.Object
-
- org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<BindingSet>
-
- org.eclipse.rdf4j.federated.evaluation.iterator.QueryResultIteration
-
- All Implemented Interfaces:
AutoCloseable
,Iterator<BindingSet>
,CloseableIteration<BindingSet>
public class QueryResultIteration extends AbstractCloseableIteration<BindingSet>
An iteration which wraps the final result and in case of exceptions aborts query evaluation for the corresponding query in fedx (potentially subqueries are still running, and jobs are scheduled). If some external component calls close() on this iteration AND if the corresponding query is still running, the query is aborted within FedX. An example case would be RDF4J's QueryInteruptIterations, which is used to enforce maxQueryTime. If the query is finished, the FederationManager is notified that the query is done, and the query is removed from the set of running queries.- Author:
- Andreas Schwarte
-
-
Field Summary
Fields Modifier and Type Field Description protected CloseableIteration<BindingSet>
inner
protected QueryManager
qm
protected QueryInfo
queryInfo
-
Constructor Summary
Constructors Constructor Description QueryResultIteration(CloseableIteration<BindingSet> inner, QueryInfo queryInfo)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
abortQuery()
Abort the query in the schedulers if it is still running.protected void
handleClose()
Called byAbstractCloseableIteration.close()
when it is called for the first time.boolean
hasNext()
BindingSet
next()
void
remove()
-
Methods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosed
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.common.iteration.CloseableIteration
stream
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
Field Detail
-
inner
protected final CloseableIteration<BindingSet> inner
-
queryInfo
protected final QueryInfo queryInfo
-
qm
protected final QueryManager qm
-
-
Constructor Detail
-
QueryResultIteration
public QueryResultIteration(CloseableIteration<BindingSet> inner, QueryInfo queryInfo)
-
-
Method Detail
-
hasNext
public boolean hasNext() throws QueryEvaluationException
- Throws:
QueryEvaluationException
-
next
public BindingSet next() throws QueryEvaluationException
- Throws:
QueryEvaluationException
-
remove
public void remove() throws QueryEvaluationException
- Throws:
QueryEvaluationException
-
handleClose
protected void handleClose() throws QueryEvaluationException
Description copied from class:AbstractCloseableIteration
Called byAbstractCloseableIteration.close()
when it is called for the first time. This method is only called once on each iteration. By default, this method does nothing.- Specified by:
handleClose
in classAbstractCloseableIteration<BindingSet>
- Throws:
QueryEvaluationException
-
abortQuery
protected void abortQuery()
Abort the query in the schedulers if it is still running.
-
-