diff options
Diffstat (limited to 'guava/src/com/google/common/collect/EvictingQueue.java')
-rw-r--r-- | guava/src/com/google/common/collect/EvictingQueue.java | 48 |
1 files changed, 17 insertions, 31 deletions
diff --git a/guava/src/com/google/common/collect/EvictingQueue.java b/guava/src/com/google/common/collect/EvictingQueue.java index 37a65f3e0..c124a0c7b 100644 --- a/guava/src/com/google/common/collect/EvictingQueue.java +++ b/guava/src/com/google/common/collect/EvictingQueue.java @@ -20,9 +20,9 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.annotations.Beta; -import com.google.common.annotations.GwtCompatible; +import com.google.common.annotations.GwtIncompatible; import com.google.common.annotations.VisibleForTesting; -import com.google.errorprone.annotations.CanIgnoreReturnValue; + import java.io.Serializable; import java.util.ArrayDeque; import java.util.Collection; @@ -30,13 +30,11 @@ import java.util.Queue; /** * A non-blocking queue which automatically evicts elements from the head of the queue when - * attempting to add new elements onto the queue and it is full. This queue orders elements FIFO - * (first-in-first-out). This data structure is logically equivalent to a circular buffer (i.e., - * cyclic buffer or ring buffer). + * attempting to add new elements onto the queue and it is full. * - * <p>An evicting queue must be configured with a maximum size. Each time an element is added to a - * full queue, the queue automatically removes its head element. This is different from conventional - * bounded queues, which either block or reject new elements when full. + * <p>An evicting queue must be configured with a maximum size. Each time an element is added + * to a full queue, the queue automatically removes its head element. This is different from + * conventional bounded queues, which either block or reject new elements when full. * * <p>This class is not thread-safe, and does not accept null elements. * @@ -44,12 +42,13 @@ import java.util.Queue; * @since 15.0 */ @Beta -@GwtCompatible +@GwtIncompatible("java.util.ArrayDeque") public final class EvictingQueue<E> extends ForwardingQueue<E> implements Serializable { private final Queue<E> delegate; - @VisibleForTesting final int maxSize; + @VisibleForTesting + final int maxSize; private EvictingQueue(int maxSize) { checkArgument(maxSize >= 0, "maxSize (%s) must >= 0", maxSize); @@ -68,8 +67,8 @@ public final class EvictingQueue<E> extends ForwardingQueue<E> implements Serial } /** - * Returns the number of additional elements that this queue can accept without evicting; zero if - * the queue is currently full. + * Returns the number of additional elements that this queue can accept without evicting; + * zero if the queue is currently full. * * @since 16.0 */ @@ -77,8 +76,7 @@ public final class EvictingQueue<E> extends ForwardingQueue<E> implements Serial return maxSize - size(); } - @Override - protected Queue<E> delegate() { + @Override protected Queue<E> delegate() { return delegate; } @@ -88,9 +86,7 @@ public final class EvictingQueue<E> extends ForwardingQueue<E> implements Serial * * @return {@code true} always */ - @Override - @CanIgnoreReturnValue - public boolean offer(E e) { + @Override public boolean offer(E e) { return add(e); } @@ -100,10 +96,8 @@ public final class EvictingQueue<E> extends ForwardingQueue<E> implements Serial * * @return {@code true} always */ - @Override - @CanIgnoreReturnValue - public boolean add(E e) { - checkNotNull(e); // check before removing + @Override public boolean add(E e) { + checkNotNull(e); // check before removing if (maxSize == 0) { return true; } @@ -114,14 +108,7 @@ public final class EvictingQueue<E> extends ForwardingQueue<E> implements Serial return true; } - @Override - @CanIgnoreReturnValue - public boolean addAll(Collection<? extends E> collection) { - int size = collection.size(); - if (size >= maxSize) { - clear(); - return Iterables.addAll(this, Iterables.skip(collection, size - maxSize)); - } + @Override public boolean addAll(Collection<? extends E> collection) { return standardAddAll(collection); } @@ -131,12 +118,11 @@ public final class EvictingQueue<E> extends ForwardingQueue<E> implements Serial } @Override - @CanIgnoreReturnValue public boolean remove(Object object) { return delegate().remove(checkNotNull(object)); } - // TODO(kak): Do we want to checkNotNull each element in containsAll, removeAll, and retainAll? + // TODO(user): Do we want to checkNotNull each element in containsAll, removeAll, and retainAll? private static final long serialVersionUID = 0L; } |