in report-builder/src/jetbrains/coverage/report/impl/html/SortOption.java [121:143]
public Comparator<ModuleInfo> createModulesComparator(final StatisticsCalculator covStatsCalculator) {
final Comparator<ModuleInfo> nameComparator = new Comparator<ModuleInfo>() {
public int compare(final ModuleInfo o1, final ModuleInfo o2) {
final String n1 = o1.getName();
final String n2 = o2.getName();
if (n1 == null && n2 == null) return 0;
if (n1 != null && n2 == null) return 1;
if (n1 == null && n2 != null) return -1;
int result = n1.compareTo(n2);
return isDescendingOrder() ? -result : result;
}
};
if (orderByName()) {
return nameComparator;
}
final Comparator<ModuleInfo> valueComparator = comparator(new Func<ModuleInfo>() {
public CoverageStatistics compute(ModuleInfo moduleInfo) {
return covStatsCalculator.getForModule(moduleInfo.getName());
}
});
return addSecondaryComparator(valueComparator, nameComparator);
}