package org.calrissian.flowbox.support;
import java.util.concurrent.LinkedBlockingDeque;
public class LimitingDeque<E> extends LinkedBlockingDeque<E> {
private long maxSize;
public LimitingDeque(long maxSize) {
this.maxSize = maxSize;
}
@Override
public boolean offerFirst(E e) {
if(size() == maxSize)
removeLast();
return super.offerFirst(e);
}
@Override
public boolean offerLast(E e) {
if(size() == maxSize)
removeFirst();
return super.offerLast(e);
}
}