From 246e4bb66593e01ea0ffb750f04e73a73c251b76 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Thu, 24 Feb 2022 11:10:44 -0700
Subject: [PATCH] static functions/transforms to streams

---
 .../nshmp/calc/DisaggContributor.java         | 24 ++++---------------
 .../earthquake/nshmp/calc/DisaggDataset.java  |  3 ++-
 2 files changed, 6 insertions(+), 21 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/calc/DisaggContributor.java b/src/main/java/gov/usgs/earthquake/nshmp/calc/DisaggContributor.java
index a97b29fd..928482fe 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/calc/DisaggContributor.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/calc/DisaggContributor.java
@@ -3,14 +3,13 @@ package gov.usgs.earthquake.nshmp.calc;
 import static com.google.common.base.Preconditions.checkState;
 import static gov.usgs.earthquake.nshmp.Text.NEWLINE;
 import static gov.usgs.earthquake.nshmp.model.SourceType.FAULT_SYSTEM;
+import static java.util.Comparator.comparingDouble;
 import static java.util.stream.Collectors.toList;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
-import java.util.function.Function;
 
 import gov.usgs.earthquake.nshmp.Maths;
 import gov.usgs.earthquake.nshmp.calc.DisaggExport.ContributionFilter;
@@ -778,24 +777,9 @@ abstract class DisaggContributor {
   private static List<DisaggContributor> buildAndSort(
       Collection<DisaggContributor.Builder> builders) {
     return builders.stream()
-        .map(BUILDER::apply)
-        .sorted(SORTER)
+        .map(Builder::build)
+        .sorted(comparingDouble(DisaggContributor::total).reversed())
         .collect(toList());
-  }
-
-  static final Function<DisaggContributor.Builder, DisaggContributor> BUILDER =
-      new Function<DisaggContributor.Builder, DisaggContributor>() {
-        @Override
-        public DisaggContributor apply(Builder builder) {
-          return builder.build();
-        }
-      };
-
-  static final Comparator<DisaggContributor> SORTER = new Comparator<DisaggContributor>() {
-    @Override
-    public int compare(DisaggContributor left, DisaggContributor right) {
-      return Double.compare(right.total(), left.total());
-    }
-  };
 
+  }
 }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/calc/DisaggDataset.java b/src/main/java/gov/usgs/earthquake/nshmp/calc/DisaggDataset.java
index be992d77..7edf1079 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/calc/DisaggDataset.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/calc/DisaggDataset.java
@@ -2,6 +2,7 @@ package gov.usgs.earthquake.nshmp.calc;
 
 import static com.google.common.base.Preconditions.checkState;
 import static gov.usgs.earthquake.nshmp.data.DoubleData.checkInRange;
+import static java.util.Comparator.comparingDouble;
 import static java.util.stream.Collectors.toList;
 
 import java.util.ArrayList;
@@ -438,7 +439,7 @@ final class DisaggDataset {
 
     DisaggDataset build() {
       List<DisaggContributor> sortedList = contributors.stream()
-          .sorted(DisaggContributor.SORTER)
+          .sorted(comparingDouble(DisaggContributor::total).reversed())
           .collect(toList());
       return super.build(sortedList);
     }
-- 
GitLab