8178889: Move creation of AbstractChronology comparators to call sites
Reviewed-by: rriggs
--- a/jdk/src/java.base/share/classes/java/time/chrono/AbstractChronology.java Thu Apr 13 20:35:17 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/time/chrono/AbstractChronology.java Tue Apr 18 18:25:09 2017 +0200
@@ -127,36 +127,6 @@
public abstract class AbstractChronology implements Chronology {
/**
- * ChronoLocalDate order constant.
- */
- static final Comparator<ChronoLocalDate> DATE_ORDER =
- (Comparator<ChronoLocalDate> & Serializable) (date1, date2) -> {
- return Long.compare(date1.toEpochDay(), date2.toEpochDay());
- };
- /**
- * ChronoLocalDateTime order constant.
- */
- static final Comparator<ChronoLocalDateTime<? extends ChronoLocalDate>> DATE_TIME_ORDER =
- (Comparator<ChronoLocalDateTime<? extends ChronoLocalDate>> & 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<ChronoZonedDateTime<?>> INSTANT_ORDER =
- (Comparator<ChronoZonedDateTime<?>> & 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.
*/
private static final ConcurrentHashMap<String, Chronology> CHRONOS_BY_ID = new ConcurrentHashMap<>();
--- a/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDate.java Thu Apr 13 20:35:17 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDate.java Tue Apr 18 18:25:09 2017 +0200
@@ -66,6 +66,7 @@
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 @@
* @see #isEqual
*/
static Comparator<ChronoLocalDate> timeLineOrder() {
- return AbstractChronology.DATE_ORDER;
+ return (Comparator<ChronoLocalDate> & Serializable) (date1, date2) -> {
+ return Long.compare(date1.toEpochDay(), date2.toEpochDay());
+ };
}
//-----------------------------------------------------------------------
--- a/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDateTime.java Thu Apr 13 20:35:17 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/time/chrono/ChronoLocalDateTime.java Tue Apr 18 18:25:09 2017 +0200
@@ -66,6 +66,7 @@
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 @@
* @see #isEqual
*/
static Comparator<ChronoLocalDateTime<?>> timeLineOrder() {
- return AbstractChronology.DATE_TIME_ORDER;
+ return (Comparator<ChronoLocalDateTime<? extends ChronoLocalDate>> & 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;
+ };
}
//-----------------------------------------------------------------------
--- a/jdk/src/java.base/share/classes/java/time/chrono/ChronoZonedDateTime.java Thu Apr 13 20:35:17 2017 +0000
+++ b/jdk/src/java.base/share/classes/java/time/chrono/ChronoZonedDateTime.java Tue Apr 18 18:25:09 2017 +0200
@@ -66,6 +66,7 @@
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 @@
* @see #isEqual
*/
static Comparator<ChronoZonedDateTime<?>> timeLineOrder() {
- return AbstractChronology.INSTANT_ORDER;
+ return (Comparator<ChronoZonedDateTime<?>> & 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;
+ };
}
//-----------------------------------------------------------------------