package no.ntnu.fp.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class SortedDistinctTimeList<T extends ContainComparable<T>> implements Iterable<T>, Serializable {
private static final long serialVersionUID = 6114746976306369115L;
private List<T> list;
public SortedDistinctTimeList() {
list = new ArrayList<T>();
}
public SortedDistinctTimeList(List<T> list) {
this.list = list;
Collections.sort(list);
}
public void add(T elem) {
if (!overlaps(elem)) {
list.add(elem);
Collections.sort(list);
} else {
throw new IllegalArgumentException("List already contains " + elem);
}
}
public boolean overlaps(T elem) {
for(T e : this) {
if (e.contains(elem)) {
return true;
}
}
return false;
}
public T get(int index) {
return list.get(index);
}
@Override
public Iterator<T> iterator() {
return list.iterator();
}
}