@Override public E getLast() { return delegate().getLast(); }
@Override public synchronized boolean add(T element) { if (count >= capacity) { poll(); } else { count++; } return super.add(element); }
@Override public synchronized void addFirst(T t) { if (count >= capacity) { poll(); } else { count++; } super.addFirst(t); } }
@Override public boolean isEmpty() { boolean isEmpty = super.isEmpty(); if (isEmpty && !findersDeque.isEmpty()) { log.debug("Movies deque is empty, start loading..."); try { MovieFinder finder = findersDeque.poll(); log.debug("Loading using finder type: {}", finder.getDocumentSourceType()); Deque<Movie> movies = finder.prepare(movie).getProcessedResponse(); super.addAll(movies); log.debug("Successfully loaded: {}", movies); } catch (IOException ignore) { log.debug("Loading error, trying next finder..."); } return isEmpty(); } return isEmpty; } }
@Override public void push(E e) { delegate().push(e); }
@Override public synchronized boolean add(T element) { if (count >= capacity) { poll(); } else { count++; } return super.add(element); }
@Override public synchronized void addFirst(T t) { if (count >= capacity) { poll(); } else { count++; } super.addFirst(t); } }
@Override public Iterator<E> descendingIterator() { return delegate().descendingIterator(); }
@Override public void addLast(E e) { delegate().addLast(e); }
@Override public E getFirst() { return delegate().getFirst(); }
@Override public void addFirst(E e) { delegate().addFirst(e); }
@Override public E peekFirst() { return delegate().peekFirst(); }
@Override public E peekLast() { return delegate().peekLast(); }
@Override public void addFirst(E e) { delegate().addFirst(e); }
@CanIgnoreReturnValue // TODO(cpovirk): Consider removing this? @Override public E pollLast() { return delegate().pollLast(); }
@CanIgnoreReturnValue @Override public E removeLast() { return delegate().removeLast(); }
@Override public E peekFirst() { return delegate().peekFirst(); }
@Override public void addLast(E e) { delegate().addLast(e); }
@Override public E getFirst() { return delegate().getFirst(); }
@Override public Iterator<E> descendingIterator() { return delegate().descendingIterator(); }