From 294f9ce9e853915492532d7c9942a7b76722b4c4 Mon Sep 17 00:00:00 2001 From: Eric Trautman Date: Fri, 15 Dec 2023 10:56:29 -0500 Subject: [PATCH] review fix: introduce static instances of comparators to improve readability/reuse (not sure this is that much better, but worth a shot) --- .../src/main/java/org/janelia/alignment/Utils.java | 4 ++++ .../java/org/janelia/alignment/match/CanvasId.java | 11 +++++------ .../alignment/match/MontageRelativePosition.java | 4 ++++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/render-app/src/main/java/org/janelia/alignment/Utils.java b/render-app/src/main/java/org/janelia/alignment/Utils.java index a0cf0904c..84439465b 100644 --- a/render-app/src/main/java/org/janelia/alignment/Utils.java +++ b/render-app/src/main/java/org/janelia/alignment/Utils.java @@ -15,6 +15,7 @@ import java.io.OutputStream; import java.net.URI; import java.util.ArrayList; +import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -411,4 +412,7 @@ public static URI convertPathOrUriStringToUri(final String pathOrUriString) return uri; } + public static final Comparator NULLS_FIRST_STRING_COMPARATOR = + Comparator.nullsFirst(Comparator.naturalOrder()); + } diff --git a/render-app/src/main/java/org/janelia/alignment/match/CanvasId.java b/render-app/src/main/java/org/janelia/alignment/match/CanvasId.java index aff30778c..f30cd62af 100644 --- a/render-app/src/main/java/org/janelia/alignment/match/CanvasId.java +++ b/render-app/src/main/java/org/janelia/alignment/match/CanvasId.java @@ -8,8 +8,8 @@ import jakarta.annotation.Nonnull; -import static org.janelia.alignment.match.MontageRelativePosition.LEFT; -import static org.janelia.alignment.match.MontageRelativePosition.TOP; +import static org.janelia.alignment.Utils.NULLS_FIRST_STRING_COMPARATOR; +import static org.janelia.alignment.match.MontageRelativePosition.*; /** * Key identifiers for a canvas. @@ -170,8 +170,7 @@ public String toJson() { public static final double[] ZERO_OFFSETS = { 0.0, 0.0 }; private static final Comparator CANVAS_ID_COMPARATOR = Comparator - .comparing(CanvasId::getGroupId, Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(CanvasId::getId, Comparator.nullsFirst(Comparator.naturalOrder())) - .thenComparing(CanvasId::getRelativePosition, Comparator.nullsFirst(Comparator.naturalOrder())); - + .comparing(CanvasId::getGroupId, NULLS_FIRST_STRING_COMPARATOR) + .thenComparing(CanvasId::getId, NULLS_FIRST_STRING_COMPARATOR) + .thenComparing(CanvasId::getRelativePosition, NULLS_FIRST_POSITION_COMPARATOR); } diff --git a/render-app/src/main/java/org/janelia/alignment/match/MontageRelativePosition.java b/render-app/src/main/java/org/janelia/alignment/match/MontageRelativePosition.java index 420aff7ae..704d274f9 100644 --- a/render-app/src/main/java/org/janelia/alignment/match/MontageRelativePosition.java +++ b/render-app/src/main/java/org/janelia/alignment/match/MontageRelativePosition.java @@ -1,5 +1,7 @@ package org.janelia.alignment.match; +import java.util.Comparator; + import org.janelia.alignment.spec.Bounds; /** @@ -57,4 +59,6 @@ public MontageRelativePosition getOpposite() { return opposite; } + public static final Comparator NULLS_FIRST_POSITION_COMPARATOR = + Comparator.nullsFirst(Comparator.naturalOrder()); }