package org.junit.runner.manipulation;
import java.util.Comparator;
import org.junit.runner.Description;
import org.junit.runner.Runner;
//TODO add an example
/**
* A <code>Sorter</code> orders tests. In general you will not need
* to use a <code>Sorter</code> directly. Instead, use <code>Request.sortWith(Comparator<Description>)</code>.
*/
public class Sorter implements Comparator<Description> {
private final Comparator<Description> fComparator;
public Sorter(Comparator<Description> comparator) {
fComparator= comparator;
}
public void apply(Runner runner) {
if (runner instanceof Sortable) {
Sortable sortable= (Sortable) runner;
sortable.sort(this);
}
}
public int compare(Description o1, Description o2) {
return fComparator.compare(o1, o2);
}
}