package net.bettyluke.util.swing;
import java.util.Arrays;
import java.util.Collection;
import javax.swing.AbstractListModel;
public final class ArrayListModel<T> extends AbstractListModel<T> {
private final Object[] data;
public static <T> ArrayListModel<T> of(Collection<T> coll) {
return new ArrayListModel<>(coll.toArray());
}
public static <T> ArrayListModel<T> of(T[] array) {
return new ArrayListModel<>(Arrays.copyOf(array, array.length));
}
private ArrayListModel(Object[] array) {
data = array;
}
@Override
public int getSize() { return data.length; }
@Override
@SuppressWarnings("unchecked")
public T getElementAt(int index) { return (T) data[index]; }
}