Class QueueIteration<E,T extends RuntimeException>
- java.lang.Object
-
- org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E>
-
- org.eclipse.rdf4j.common.iteration.LookAheadIteration<E>
-
- org.eclipse.rdf4j.common.iteration.QueueIteration<E,T>
-
- All Implemented Interfaces:
AutoCloseable
,Iterator<E>
,CloseableIteration<E>
- Direct Known Subclasses:
QueueCursor
public abstract class QueueIteration<E,T extends RuntimeException> extends LookAheadIteration<E>
Makes working with a queue easier by adding the methodsdone()
andtoss(Exception)
and after converting the Exception to the required type usingconvert(Exception)
.- Author:
- James Leigh
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
QueueIteration(int capacity)
Creates an QueueIteration with the given (fixed) capacity and default access policy.protected
QueueIteration(int capacity, boolean fair)
Creates an QueueIteration with the given (fixed) capacity and the specified access policy.protected
QueueIteration(BlockingQueue<E> queue)
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
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
checkException()
protected abstract T
convert(Exception e)
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.E
getNextElement()
Returns the next item in the queue, which may be null, or throws an exception.void
handleClose()
Called byAbstractCloseableIteration.close()
when it is called for the first time.void
put(E item)
Adds another item to the queue, blocking while the queue is full.void
toss(Exception exception)
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
-
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
-
-
-
-
Constructor Detail
-
QueueIteration
protected QueueIteration(int capacity)
Creates an QueueIteration with the given (fixed) capacity and default access policy.- Parameters:
capacity
- the capacity of this queue
-
QueueIteration
protected QueueIteration(int capacity, boolean fair)
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
protected QueueIteration(BlockingQueue<E> queue)
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 Detail
-
convert
protected abstract T convert(Exception e)
Converts an exception from the underlying iteration to an exception of type X.
-
toss
public void toss(Exception exception)
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
public void put(E item) throws InterruptedException, T extends RuntimeException
Adds another item to the queue, blocking while the queue is full.- Throws:
InterruptedException
T extends RuntimeException
-
done
public void done()
Indicates the methodput(Object)
will not be called in the queue anymore.
-
getNextElement
public E getNextElement()
Returns the next item in the queue, which may be null, or throws an exception.- Specified by:
getNextElement
in classLookAheadIteration<E>
- Returns:
- The next element, or null if no more elements are available.
-
handleClose
public void 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.- Specified by:
handleClose
in classAbstractCloseableIteration<E>
-
checkException
public void checkException() throws T extends RuntimeException
- Throws:
T extends RuntimeException
-
-