EvictingQueue.java 2.02 KB
package com.google.common.collect;

import com.google.common.annotations.Beta;
import com.google.common.annotations.GwtIncompatible;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import java.io.Serializable;
import java.util.ArrayDeque;
import java.util.Collection;
import java.util.Queue;

@Beta
@GwtIncompatible("java.util.ArrayDeque")
public final class EvictingQueue<E>
  extends ForwardingQueue<E>
  implements Serializable
{
  private static final long serialVersionUID = 0L;
  @VisibleForTesting
  final int a;
  private final Queue<E> b;
  
  private EvictingQueue(int paramInt)
  {
    if (paramInt >= 0) {}
    for (boolean bool = true;; bool = false)
    {
      Preconditions.checkArgument(bool, "maxSize (%s) must >= 0", new Object[] { Integer.valueOf(paramInt) });
      this.b = new ArrayDeque(paramInt);
      this.a = paramInt;
      return;
    }
  }
  
  public static <E> EvictingQueue<E> create(int paramInt)
  {
    return new EvictingQueue(paramInt);
  }
  
  public final boolean add(E paramE)
  {
    Preconditions.checkNotNull(paramE);
    if (this.a == 0) {
      return true;
    }
    if (size() == this.a) {
      this.b.remove();
    }
    this.b.add(paramE);
    return true;
  }
  
  public final boolean addAll(Collection<? extends E> paramCollection)
  {
    return standardAddAll(paramCollection);
  }
  
  public final boolean contains(Object paramObject)
  {
    return delegate().contains(Preconditions.checkNotNull(paramObject));
  }
  
  protected final Queue<E> delegate()
  {
    return this.b;
  }
  
  public final boolean offer(E paramE)
  {
    return add(paramE);
  }
  
  public final int remainingCapacity()
  {
    return this.a - size();
  }
  
  public final boolean remove(Object paramObject)
  {
    return delegate().remove(Preconditions.checkNotNull(paramObject));
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/google/common/collect/EvictingQueue.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */