public Comparator createModulesComparator()

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);
  }