Rabbit-R1/switch port/java/sources/com/google/common/collect/EvictingQueue.java
2024-05-21 17:08:36 -04:00

68 lines
2.1 KiB
Java

package com.google.common.collect;
import com.google.common.base.Preconditions;
import java.io.Serializable;
import java.util.ArrayDeque;
import java.util.Collection;
import java.util.Queue;
@ElementTypesAreNonnullByDefault
/* loaded from: classes3.dex */
public final class EvictingQueue<E> extends ForwardingQueue<E> implements Serializable {
private static final long serialVersionUID = 0;
private final Queue<E> delegate;
final int maxSize;
/* JADX INFO: Access modifiers changed from: protected */
@Override // com.google.common.collect.ForwardingQueue, com.google.common.collect.ForwardingCollection, com.google.common.collect.ForwardingObject
public Queue<E> delegate() {
return this.delegate;
}
private EvictingQueue(int i) {
Preconditions.checkArgument(i >= 0, "maxSize (%s) must >= 0", i);
this.delegate = new ArrayDeque(i);
this.maxSize = i;
}
public static <E> EvictingQueue<E> create(int i) {
return new EvictingQueue<>(i);
}
public int remainingCapacity() {
return this.maxSize - size();
}
@Override // com.google.common.collect.ForwardingQueue, java.util.Queue
public boolean offer(E e) {
return add(e);
}
@Override // com.google.common.collect.ForwardingCollection, java.util.Collection, java.util.Queue
public boolean add(E e) {
Preconditions.checkNotNull(e);
if (this.maxSize == 0) {
return true;
}
if (size() == this.maxSize) {
this.delegate.remove();
}
this.delegate.add(e);
return true;
}
@Override // com.google.common.collect.ForwardingCollection, java.util.Collection
public boolean addAll(Collection<? extends E> collection) {
int size = collection.size();
if (size >= this.maxSize) {
clear();
return Iterables.addAll(this, Iterables.skip(collection, size - this.maxSize));
}
return standardAddAll(collection);
}
@Override // com.google.common.collect.ForwardingCollection, java.util.Collection, java.util.Set
public Object[] toArray() {
return super.toArray();
}
}