package com.kspichale.strom_demo;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.joda.time.DateTime;
public class RankingList implements Iterable<ListItem>, Serializable {
private static final long serialVersionUID = -1842234226746416412L;
private final int SIZE = 100;
private List<ListItem> items = new ArrayList<ListItem>();
public void add(final ListItem item) {
items.add(item);
}
public void sortAndTrim() {
Collections.sort(items);
final DateTime theshold = DateTime.now().minusHours(3);
final List<ListItem> result = new ArrayList<ListItem>();
for (final ListItem item : items) {
if (theshold.isBefore(item.getDateTime())) {
result.add(item);
if (result.size() == SIZE) {
break;
}
}
}
items = result;
}
@Override
public Iterator<ListItem> iterator() {
return items.iterator();
}
}