Class QueryResultIteration
java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<BindingSet,QueryEvaluationException>
org.eclipse.rdf4j.federated.evaluation.iterator.QueryResultIteration
- All Implemented Interfaces:
AutoCloseable
,CloseableIteration<BindingSet,
,QueryEvaluationException> Iteration<BindingSet,
QueryEvaluationException>
public class QueryResultIteration
extends AbstractCloseableIteration<BindingSet,QueryEvaluationException>
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 Sesame'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
Modifier and TypeFieldDescriptionprotected final CloseableIteration<BindingSet,
QueryEvaluationException> protected final QueryManager
protected final QueryInfo
-
Constructor Summary
ConstructorDescriptionQueryResultIteration
(CloseableIteration<BindingSet, QueryEvaluationException> inner, QueryInfo queryInfo) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Abort the query in the schedulers if it is still running.protected void
Called byAbstractCloseableIteration.close()
when it is called for the first time.boolean
hasNext()
Returns true if the iteration has more elements.next()
Returns the next element in the iteration.void
remove()
Removes from the underlying collection the last element returned by the iteration (optional operation).Methods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosed
-
Field Details
-
inner
-
queryInfo
-
qm
-
-
Constructor Details
-
QueryResultIteration
public QueryResultIteration(CloseableIteration<BindingSet, QueryEvaluationException> inner, QueryInfo queryInfo)
-
-
Method Details
-
hasNext
Description copied from interface:Iteration
Returns true if the iteration has more elements. (In other words, returns true ifIteration.next()
would return an element rather than throwing a NoSuchElementException.)- Returns:
- true if the iteration has more elements.
- Throws:
QueryEvaluationException
-
next
Description copied from interface:Iteration
Returns the next element in the iteration.- Returns:
- the next element in the iteration.
- Throws:
QueryEvaluationException
-
remove
Description copied from interface:Iteration
Removes from the underlying collection the last element returned by the iteration (optional operation). This method can be called only once per call to next.- Throws:
QueryEvaluationException
-
handleClose
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.- Overrides:
handleClose
in classAbstractCloseableIteration<BindingSet,
QueryEvaluationException> - Throws:
QueryEvaluationException
-
abortQuery
protected void abortQuery()Abort the query in the schedulers if it is still running.
-