package de.skuzzle.polly.sdk.httpv2.html;
import java.util.Comparator;
public class DefaultColumnSorter<T> implements HTMLColumnSorter<T> {
@Override
public Comparator<? super T> getComparator(final int column,
final HTMLTableModel<T> model) {
return new Comparator<T>() {
@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
public int compare(T o1, T o2) {
Object val1 = model.getCellValue(column, o1);
Object val2 = model.getCellValue(column, o2);
if (val1 instanceof Comparable && val2 instanceof Comparable) {
Comparable c1 = (Comparable) val1;
Comparable c2 = (Comparable) val2;
return c1.compareTo(c2);
} else {
if (val1 == null) {
val1 = ""; //$NON-NLS-1$
}
if (val2 == null) {
val2 = ""; //$NON-NLS-1$
}
return val1.toString().compareToIgnoreCase(val2.toString());
}
}
};
}
}