mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-28 19:20:33 +00:00
8178889: Move creation of AbstractChronology comparators to call sites
Reviewed-by: rriggs
This commit is contained in:
parent
ae7df5fca9
commit
dccdbdd2d2
@ -126,36 +126,6 @@ import sun.util.logging.PlatformLogger;
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
|
||||
@ -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<ChronoLocalDate> timeLineOrder() {
|
||||
return AbstractChronology.DATE_ORDER;
|
||||
return (Comparator<ChronoLocalDate> & Serializable) (date1, date2) -> {
|
||||
return Long.compare(date1.toEpochDay(), date2.toEpochDay());
|
||||
};
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
@ -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<D extends ChronoLocalDate>
|
||||
* @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;
|
||||
};
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
@ -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<D extends ChronoLocalDate>
|
||||
* @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;
|
||||
};
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user