Class ForwardingDeque<E>

All Implemented Interfaces:
Iterable<E>, Collection<E>, Deque<E>, Queue<E>
Direct Known Subclasses:
ForwardingBlockingDeque, ForwardingBlockingDeque

@GwtIncompatible public abstract class ForwardingDeque<E> extends ForwardingQueue<E> implements Deque<E>
A deque which forwards all its method calls to another deque. 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 ForwardingDeque forward indiscriminately to the methods of the delegate. For example, overriding ForwardingCollection.add(E) alone will not change the behavior of ForwardingQueue.offer(E) which can lead to unexpected behavior. In this case, you should override offer as well.

default method warning: This class does not forward calls to default methods. Instead, it inherits their default implementations. When those implementations invoke methods, they invoke methods on the ForwardingDeque.

Since:
12.0
  • Constructor Details

    • ForwardingDeque

      protected ForwardingDeque()
      Constructor for use by subclasses.
  • Method Details

    • delegate

      protected abstract Deque<E> delegate()
      Description copied from class: ForwardingObject
      Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such as ForwardingSet.delegate(). Concrete subclasses override this method to supply the instance being decorated.
      Specified by:
      delegate in class ForwardingQueue<E>
    • addFirst

      public void addFirst(E e)
      Specified by:
      addFirst in interface Deque<E>
    • addLast

      public void addLast(E e)
      Specified by:
      addLast in interface Deque<E>
    • descendingIterator

      public Iterator<E> descendingIterator()
      Specified by:
      descendingIterator in interface Deque<E>
    • getFirst

      public E getFirst()
      Specified by:
      getFirst in interface Deque<E>
    • getLast

      public E getLast()
      Specified by:
      getLast in interface Deque<E>
    • offerFirst

      public boolean offerFirst(E e)
      Specified by:
      offerFirst in interface Deque<E>
    • offerLast

      public boolean offerLast(E e)
      Specified by:
      offerLast in interface Deque<E>
    • peekFirst

      @CheckForNull public E peekFirst()
      Specified by:
      peekFirst in interface Deque<E>
    • peekLast

      @CheckForNull public E peekLast()
      Specified by:
      peekLast in interface Deque<E>
    • pollFirst

      @CheckForNull public E pollFirst()
      Specified by:
      pollFirst in interface Deque<E>
    • pollLast

      @CheckForNull public E pollLast()
      Specified by:
      pollLast in interface Deque<E>
    • pop

      public E pop()
      Specified by:
      pop in interface Deque<E>
    • push

      public void push(E e)
      Specified by:
      push in interface Deque<E>
    • removeFirst

      public E removeFirst()
      Specified by:
      removeFirst in interface Deque<E>
    • removeLast

      public E removeLast()
      Specified by:
      removeLast in interface Deque<E>
    • removeFirstOccurrence

      public boolean removeFirstOccurrence(@CheckForNull Object o)
      Specified by:
      removeFirstOccurrence in interface Deque<E>
    • removeLastOccurrence

      public boolean removeLastOccurrence(@CheckForNull Object o)
      Specified by:
      removeLastOccurrence in interface Deque<E>