package com.netifera.platform.api.iterables;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListIndexedIterable<E> implements IndexedIterable<E> {
private static final long serialVersionUID = -4005175960188711993L;
private final List<E> list;
public ListIndexedIterable(List<E> list) {
this.list = list;
}
public ListIndexedIterable(E element) {
list = new ArrayList<E>();
list.add(element);
}
public E itemAt(int index) {
return list.get(index);
}
public int itemCount() {
return list.size();
}
public Iterator<E> iterator() {
return new SequentialIterator<E>(this);
}
@Override
public String toString() {
StringBuffer buffer = new StringBuffer();
Iterator<E> iterator = iterator();
boolean isFirst = true;
while (iterator.hasNext()) {
if (!isFirst) buffer.append(", ");
buffer.append(iterator.next());
if (buffer.length() > 20 && iterator.hasNext()) {
buffer.append(".. ("+itemCount()+")");
break;
}
isFirst = false;
}
return buffer.toString();
}
}