public int compare(T leftRow, T rightRow) { for (SortableHeader<T, ?> sortableHeader : sortOrderList) { Comparable leftColumnValue = sortableHeader.getColumn().getValue(leftRow); Comparable rightColumnValue = sortableHeader.getColumn().getValue(rightRow); int comparison = (leftColumnValue == rightColumnValue) ? 0 : (leftColumnValue == null) ? -1 : (rightColumnValue == null) ? 1 : leftColumnValue.compareTo(rightColumnValue); if (comparison != 0) { switch (sortableHeader.getSortDirection()) { case ASCENDING: break; case DESCENDING: comparison = -comparison; break; default: throw new IllegalStateException("Sorting can only be enabled for ASCENDING or" + " DESCENDING, not sortDirection (" + sortableHeader.getSortDirection() + ") ."); } return comparison; } } return leftRow.compareTo(rightRow); } });
public int compare(T leftRow, T rightRow) { for (SortableHeader<T, ?> sortableHeader : sortOrderList) { Comparable leftColumnValue = sortableHeader.getColumn().getValue(leftRow); Comparable rightColumnValue = sortableHeader.getColumn().getValue(rightRow); int comparison = (leftColumnValue == rightColumnValue) ? 0 : (leftColumnValue == null) ? -1 : (rightColumnValue == null) ? 1 : leftColumnValue.compareTo(rightColumnValue); if (comparison != 0) { switch (sortableHeader.getSortDirection()) { case ASCENDING: break; case DESCENDING: comparison = -comparison; break; default: throw new IllegalStateException("Sorting can only be enabled for ASCENDING or" + " DESCENDING, not sortDirection (" + sortableHeader.getSortDirection() + ") ."); } return comparison; } } return leftRow.compareTo(rightRow); } });