package uk.ac.ox.oucs.vle;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
/**
* This is for sorting coursegroups with no date by when we think they might happen
* based on the term. Puts oldest first.
*
* @author Matthew Buckett
*/
class NoDateComparator implements Comparator<CourseGroup> {
// This does the actual sorting based on term codes.
private TermCodeComparator comp = new TermCodeComparator();
public int compare(CourseGroup c1, CourseGroup c2) {
// This is for when we don't have a good date, but most courses will have
// a term code.
// This does return the latest, but only where dates are concerned, otherwise
// it's based on the presentation ID.
String tc1 = getTermCode(c1);
String tc2 = getTermCode(c2);
int ret = comp.compare(tc1, tc2);
if (ret == 0 ) {
ret = c1.getTitle().compareTo(c2.getTitle());
}
return ret;
}
private String getTermCode(CourseGroup cg) {
List<CourseComponent> components = cg.getComponents();
if (!components.isEmpty()) {
CourseComponent component = components.get(components.size() -1);
if (component != null) {
return component.getTermCode();
}
}
return null;
}
}