package net.md_5.bungee.util;
import com.google.common.base.Preconditions;
import java.util.ArrayList;
import java.util.Collection;
public class BoundedArrayList<E> extends ArrayList<E>
{
private final int maxSize;
public BoundedArrayList(int maxSize)
{
this.maxSize = maxSize;
}
private void checkSize(int increment)
{
Preconditions.checkState( size() + increment <= maxSize, "Adding %s elements would exceed capacity of %s", increment, maxSize );
}
@Override
public boolean add(E e)
{
checkSize( 1 );
return super.add( e );
}
@Override
public void add(int index, E element)
{
checkSize( 1 );
super.add( index, element );
}
@Override
public boolean addAll(Collection<? extends E> c)
{
checkSize( c.size() );
return super.addAll( c );
}
@Override
public boolean addAll(int index, Collection<? extends E> c)
{
checkSize( c.size() );
return super.addAll( index, c );
}
}