aboutsummaryrefslogtreecommitdiff
path: root/guava/src/com/google/common/collect/EvictingQueue.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava/src/com/google/common/collect/EvictingQueue.java')
-rw-r--r--guava/src/com/google/common/collect/EvictingQueue.java48
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;
}