From dccdbdd2d23bcb2bcee04a5dc606c23f4a976343 Mon Sep 17 00:00:00 2001 From: Claes Redestad Date: Tue, 18 Apr 2017 18:25:09 +0200 Subject: [PATCH] 8178889: Move creation of AbstractChronology comparators to call sites Reviewed-by: rriggs --- .../java/time/chrono/AbstractChronology.java | 30 ------------------- .../java/time/chrono/ChronoLocalDate.java | 5 +++- .../java/time/chrono/ChronoLocalDateTime.java | 9 +++++- .../java/time/chrono/ChronoZonedDateTime.java | 9 +++++- 4 files changed, 20 insertions(+), 33 deletions(-) diff --git a/jdk/src/java.base/share/classes/java/time/chrono/AbstractChronology.java b/jdk/src/java.base/share/classes/java/time/chrono/AbstractChronology.java index c2e91d7f5f8..a32ecb78da1 100644 --- a/jdk/src/java.base/share/classes/java/time/chrono/AbstractChronology.java +++ b/jdk/src/java.base/share/classes/java/time/chrono/AbstractChronology.java @@ -126,36 +126,6 @@ import sun.util.logging.PlatformLogger; */ public abstract class AbstractChronology implements Chronology { - /** - * ChronoLocalDate order constant. - */ - static final Comparator DATE_ORDER = - (Comparator & Serializable) (date1, date2) -> { - return Long.compare(date1.toEpochDay(), date2.toEpochDay()); - }; - /** - * ChronoLocalDateTime order constant. - */ - static final Comparator> DATE_TIME_ORDER = - (Comparator> & Serializable) (dateTime1, dateTime2) -> { - int cmp = Long.compare(dateTime1.toLocalDate().toEpochDay(), dateTime2.toLocalDate().toEpochDay()); - if (cmp == 0) { - cmp = Long.compare(dateTime1.toLocalTime().toNanoOfDay(), dateTime2.toLocalTime().toNanoOfDay()); - } - return cmp; - }; - /** - * ChronoZonedDateTime order constant. - */ - static final Comparator> INSTANT_ORDER = - (Comparator> & Serializable) (dateTime1, dateTime2) -> { - int cmp = Long.compare(dateTime1.toEpochSecond(), dateTime2.toEpochSecond()); - if (cmp == 0) { - cmp = Long.compare(dateTime1.toLocalTime().getNano(), dateTime2.toLocalTime().getNano()); - } - return cmp; - }; - /** * Map of available calendars by ID. */ diff --git a/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDate.java b/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDate.java index 03a7a48d209..fb6938664ec 100644 --- a/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDate.java +++ b/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDate.java @@ -66,6 +66,7 @@ import static java.time.temporal.ChronoField.ERA; import static java.time.temporal.ChronoField.YEAR; import static java.time.temporal.ChronoUnit.DAYS; +import java.io.Serializable; import java.time.DateTimeException; import java.time.LocalDate; import java.time.LocalTime; @@ -256,7 +257,9 @@ public interface ChronoLocalDate * @see #isEqual */ static Comparator timeLineOrder() { - return AbstractChronology.DATE_ORDER; + return (Comparator & Serializable) (date1, date2) -> { + return Long.compare(date1.toEpochDay(), date2.toEpochDay()); + }; } //----------------------------------------------------------------------- diff --git a/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDateTime.java b/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDateTime.java index b211a52ff84..d8411961697 100644 --- a/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDateTime.java +++ b/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDateTime.java @@ -66,6 +66,7 @@ import static java.time.temporal.ChronoField.NANO_OF_DAY; import static java.time.temporal.ChronoUnit.FOREVER; import static java.time.temporal.ChronoUnit.NANOS; +import java.io.Serializable; import java.time.DateTimeException; import java.time.Instant; import java.time.LocalDateTime; @@ -136,7 +137,13 @@ public interface ChronoLocalDateTime * @see #isEqual */ static Comparator> timeLineOrder() { - return AbstractChronology.DATE_TIME_ORDER; + return (Comparator> & Serializable) (dateTime1, dateTime2) -> { + int cmp = Long.compare(dateTime1.toLocalDate().toEpochDay(), dateTime2.toLocalDate().toEpochDay()); + if (cmp == 0) { + cmp = Long.compare(dateTime1.toLocalTime().toNanoOfDay(), dateTime2.toLocalTime().toNanoOfDay()); + } + return cmp; + }; } //----------------------------------------------------------------------- diff --git a/jdk/src/java.base/share/classes/java/time/chrono/ChronoZonedDateTime.java b/jdk/src/java.base/share/classes/java/time/chrono/ChronoZonedDateTime.java index 8227c482831..eadcf9df958 100644 --- a/jdk/src/java.base/share/classes/java/time/chrono/ChronoZonedDateTime.java +++ b/jdk/src/java.base/share/classes/java/time/chrono/ChronoZonedDateTime.java @@ -66,6 +66,7 @@ import static java.time.temporal.ChronoField.OFFSET_SECONDS; import static java.time.temporal.ChronoUnit.FOREVER; import static java.time.temporal.ChronoUnit.NANOS; +import java.io.Serializable; import java.time.DateTimeException; import java.time.Instant; import java.time.LocalTime; @@ -137,7 +138,13 @@ public interface ChronoZonedDateTime * @see #isEqual */ static Comparator> timeLineOrder() { - return AbstractChronology.INSTANT_ORDER; + return (Comparator> & Serializable) (dateTime1, dateTime2) -> { + int cmp = Long.compare(dateTime1.toEpochSecond(), dateTime2.toEpochSecond()); + if (cmp == 0) { + cmp = Long.compare(dateTime1.toLocalTime().getNano(), dateTime2.toLocalTime().getNano()); + } + return cmp; + }; } //-----------------------------------------------------------------------