public abstract class ForwardingBlockingDeque<E> extends ForwardingDeque<E> implements java.util.concurrent.BlockingDeque<E>
BlockingDeque
which forwards all its method calls to another BlockingDeque
.
Subclasses should override one or more methods to modify the behavior of the backing deque as
desired per the decorator pattern.
Warning: The methods of ForwardingBlockingDeque
forward
indiscriminately to the methods of the delegate. For example, overriding ForwardingCollection.add(E)
alone will not change the behaviour of offer(E, long, java.util.concurrent.TimeUnit)
which can lead to unexpected
behaviour. In this case, you should override offer
as well, either providing your own
implementation, or delegating to the provided standardOffer
method.
The standard
methods are not guaranteed to be thread-safe, even when all of the methods
that they depend on are thread-safe.
Modifier | Constructor and Description |
---|---|
protected |
ForwardingBlockingDeque()
Constructor for use by subclasses.
|
Modifier and Type | Method and Description |
---|---|
protected abstract java.util.concurrent.BlockingDeque<E> |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
int |
drainTo(java.util.Collection<? super E> c) |
int |
drainTo(java.util.Collection<? super E> c,
int maxElements) |
boolean |
offer(E e,
long timeout,
java.util.concurrent.TimeUnit unit) |
boolean |
offerFirst(E e,
long timeout,
java.util.concurrent.TimeUnit unit) |
boolean |
offerLast(E e,
long timeout,
java.util.concurrent.TimeUnit unit) |
E |
poll(long timeout,
java.util.concurrent.TimeUnit unit) |
E |
pollFirst(long timeout,
java.util.concurrent.TimeUnit unit) |
E |
pollLast(long timeout,
java.util.concurrent.TimeUnit unit) |
void |
put(E e) |
void |
putFirst(E e) |
void |
putLast(E e) |
int |
remainingCapacity() |
E |
take() |
E |
takeFirst() |
E |
takeLast() |
addFirst, addLast, descendingIterator, getFirst, getLast, offerFirst, offerLast, peekFirst, peekLast, pollFirst, pollLast, pop, push, removeFirst, removeFirstOccurrence, removeLast, removeLastOccurrence
element, offer, peek, poll, remove, standardOffer, standardPeek, standardPoll
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, standardAddAll, standardClear, standardContains, standardContainsAll, standardIsEmpty, standardRemove, standardRemoveAll, standardRetainAll, standardToArray, standardToArray, standardToString, toArray, toArray
toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
add, addFirst, addLast, contains, element, iterator, offer, offerFirst, offerLast, peek, poll, push, remove, remove, removeFirstOccurrence, removeLastOccurrence, size
descendingIterator, getFirst, getLast, peekFirst, peekLast, pollFirst, pollLast, pop, removeFirst, removeLast
protected ForwardingBlockingDeque()
protected abstract java.util.concurrent.BlockingDeque<E> delegate()
ForwardingObject
ForwardingSet.delegate()
. Concrete subclasses override this method to supply
the instance being decorated.delegate
in class ForwardingDeque<E>
public int remainingCapacity()
remainingCapacity
in interface java.util.concurrent.BlockingQueue<E>
public void putFirst(E e) throws java.lang.InterruptedException
putFirst
in interface java.util.concurrent.BlockingDeque<E>
java.lang.InterruptedException
public void putLast(E e) throws java.lang.InterruptedException
putLast
in interface java.util.concurrent.BlockingDeque<E>
java.lang.InterruptedException
public boolean offerFirst(E e, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
offerFirst
in interface java.util.concurrent.BlockingDeque<E>
java.lang.InterruptedException
public boolean offerLast(E e, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
offerLast
in interface java.util.concurrent.BlockingDeque<E>
java.lang.InterruptedException
public E takeFirst() throws java.lang.InterruptedException
takeFirst
in interface java.util.concurrent.BlockingDeque<E>
java.lang.InterruptedException
public E takeLast() throws java.lang.InterruptedException
takeLast
in interface java.util.concurrent.BlockingDeque<E>
java.lang.InterruptedException
public E pollFirst(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
pollFirst
in interface java.util.concurrent.BlockingDeque<E>
java.lang.InterruptedException
public E pollLast(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
pollLast
in interface java.util.concurrent.BlockingDeque<E>
java.lang.InterruptedException
public void put(E e) throws java.lang.InterruptedException
public boolean offer(E e, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
public E take() throws java.lang.InterruptedException
public E poll(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
public int drainTo(java.util.Collection<? super E> c)
drainTo
in interface java.util.concurrent.BlockingQueue<E>