Class QueueIteration<E,T extends Exception>
java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E,X>
org.eclipse.rdf4j.common.iteration.LookAheadIteration<E,T>
org.eclipse.rdf4j.common.iteration.QueueIteration<E,T>
- All Implemented Interfaces:
AutoCloseable
,CloseableIteration<E,
,T> Iteration<E,
T>
- Direct Known Subclasses:
QueueCursor
Makes working with a queue easier by adding the methods
done()
and toss(Exception)
and after
converting the Exception to the required type using convert(Exception)
.- Author:
- James Leigh
-
Constructor Summary
ModifierConstructorDescriptionprotected
QueueIteration
(int capacity, boolean fair, WeakReference<?> callerRef) Creates an QueueIteration with the given (fixed) capacity and the specified access policy.protected
QueueIteration
(int capacity, WeakReference<?> callerRef) Creates an QueueIteration with the given (fixed) capacity and default access policy.protected
QueueIteration
(BlockingQueue<E> queue, WeakReference<?> callerRef) Creates an QueueIteration with the givenBlockingQueue
as its backing queue.
It may not be threadsafe to modify or access the givenBlockingQueue
from other locations. -
Method Summary
Modifier and TypeMethodDescriptionvoid
protected abstract T
Converts an exception from the underlying iteration to an exception of type X.void
done()
Indicates the methodput(Object)
will not be called in the queue anymore.Returns the next item in the queue, which may be null, or throws an exception.void
Called byAbstractCloseableIteration.close()
when it is called for the first time.void
Adds another item to the queue, blocking while the queue is full.void
The next timeLookAheadIteration.next()
is called this exception will be thrown.Methods inherited from class org.eclipse.rdf4j.common.iteration.LookAheadIteration
hasNext, next, remove
Methods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration
close, isClosed
-
Constructor Details
-
QueueIteration
Creates an QueueIteration with the given (fixed) capacity and default access policy.- Parameters:
capacity
- the capacity of this queue
-
QueueIteration
Creates an QueueIteration with the given (fixed) capacity and the specified access policy.- Parameters:
capacity
- the capacity of this queuefair
- if true then queue accesses for threads blocked on insertion or removal, are processed in FIFO order; if false the access order is unspecified.
-
QueueIteration
Creates an QueueIteration with the givenBlockingQueue
as its backing queue.
It may not be threadsafe to modify or access the givenBlockingQueue
from other locations. This method only enables the defaultArrayBlockingQueue
to be overridden.- Parameters:
queue
- A BlockingQueue that is not used in other locations, but will be used as the backing Queue implementation for this cursor.
-
-
Method Details
-
convert
Converts an exception from the underlying iteration to an exception of type X. -
toss
The next timeLookAheadIteration.next()
is called this exception will be thrown. If it is not a QueryEvaluationException or RuntimeException it will be wrapped in a QueryEvaluationException. -
put
Adds another item to the queue, blocking while the queue is full.- Throws:
InterruptedException
T extends Exception
-
done
public void done()Indicates the methodput(Object)
will not be called in the queue anymore. -
getNextElement
Returns the next item in the queue, which may be null, or throws an exception.- Specified by:
getNextElement
in classLookAheadIteration<E,
T extends Exception> - Returns:
- The next element, or null if no more elements are available.
- Throws:
T extends Exception
-
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 classLookAheadIteration<E,
T extends Exception> - Throws:
T extends Exception
-
checkException
-