mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-14 04:15:04 +00:00
Merge
This commit is contained in:
commit
6810bbe579
@ -201,7 +201,7 @@ public enum DayOfWeek implements TemporalAccessor, TemporalAdjuster {
|
||||
* Gets the day-of-week {@code int} value.
|
||||
* <p>
|
||||
* The values are numbered following the ISO-8601 standard, from 1 (Monday) to 7 (Sunday).
|
||||
* See {@link WeekFields#dayOfWeek} for localized week-numbering.
|
||||
* See {@link java.time.temporal.WeekFields#dayOfWeek()} for localized week-numbering.
|
||||
*
|
||||
* @return the day-of-week, from 1 (Monday) to 7 (Sunday)
|
||||
*/
|
||||
@ -288,7 +288,7 @@ public enum DayOfWeek implements TemporalAccessor, TemporalAdjuster {
|
||||
/**
|
||||
* Gets the value of the specified field from this day-of-week as an {@code int}.
|
||||
* <p>
|
||||
* This queries this day-of-week for the value for the specified field.
|
||||
* This queries this day-of-week for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -321,7 +321,7 @@ public enum DayOfWeek implements TemporalAccessor, TemporalAdjuster {
|
||||
/**
|
||||
* Gets the value of the specified field from this day-of-week as a {@code long}.
|
||||
* <p>
|
||||
* This queries this day-of-week for the value for the specified field.
|
||||
* This queries this day-of-week for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -419,7 +419,7 @@ public enum DayOfWeek implements TemporalAccessor, TemporalAdjuster {
|
||||
* The adjustment is equivalent to using {@link Temporal#with(TemporalField, long)}
|
||||
* passing {@link ChronoField#DAY_OF_WEEK} as the field.
|
||||
* Note that this adjusts forwards or backwards within a Monday to Sunday week.
|
||||
* See {@link WeekFields#dayOfWeek} for localized week start days.
|
||||
* See {@link java.time.temporal.WeekFields#dayOfWeek()} for localized week start days.
|
||||
* See {@code TemporalAdjuster} for other adjusters with more control,
|
||||
* such as {@code next(MONDAY)}.
|
||||
* <p>
|
||||
|
||||
@ -546,7 +546,7 @@ public final class Duration
|
||||
* They are returned in the order seconds, nanos.
|
||||
* <p>
|
||||
* This set can be used in conjunction with {@link #get(TemporalUnit)}
|
||||
* to access the entire state of the period.
|
||||
* to access the entire state of the duration.
|
||||
*
|
||||
* @return a list containing the seconds and nanos units, not null
|
||||
*/
|
||||
@ -686,8 +686,8 @@ public final class Duration
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
* @param amountToAdd the amount of the period, measured in terms of the unit, positive or negative
|
||||
* @param unit the unit that the period is measured in, must have an exact duration, not null
|
||||
* @param amountToAdd the amount to add, measured in terms of the unit, positive or negative
|
||||
* @param unit the unit that the amount is measured in, must have an exact duration, not null
|
||||
* @return a {@code Duration} based on this duration with the specified duration added, not null
|
||||
* @throws UnsupportedTemporalTypeException if the unit is not supported
|
||||
* @throws ArithmeticException if numeric overflow occurs
|
||||
@ -848,8 +848,8 @@ public final class Duration
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
* @param amountToSubtract the amount of the period, measured in terms of the unit, positive or negative
|
||||
* @param unit the unit that the period is measured in, must have an exact duration, not null
|
||||
* @param amountToSubtract the amount to subtract, measured in terms of the unit, positive or negative
|
||||
* @param unit the unit that the amount is measured in, must have an exact duration, not null
|
||||
* @return a {@code Duration} based on this duration with the specified duration subtracted, not null
|
||||
* @throws ArithmeticException if numeric overflow occurs
|
||||
*/
|
||||
|
||||
@ -530,7 +530,7 @@ public final class Instant
|
||||
/**
|
||||
* Gets the value of the specified field from this instant as an {@code int}.
|
||||
* <p>
|
||||
* This queries this instant for the value for the specified field.
|
||||
* This queries this instant for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -571,7 +571,7 @@ public final class Instant
|
||||
/**
|
||||
* Gets the value of the specified field from this instant as a {@code long}.
|
||||
* <p>
|
||||
* This queries this instant for the value for the specified field.
|
||||
* This queries this instant for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
|
||||
@ -280,7 +280,7 @@ public final class LocalDate
|
||||
* @param dayOfYear the day-of-year to represent, from 1 to 366
|
||||
* @return the local date, not null
|
||||
* @throws DateTimeException if the value of any field is out of range,
|
||||
* or if the day-of-year is invalid for the month-year
|
||||
* or if the day-of-year is invalid for the year
|
||||
*/
|
||||
public static LocalDate ofYearDay(int year, int dayOfYear) {
|
||||
YEAR.checkValidValue(year);
|
||||
@ -308,7 +308,7 @@ public final class LocalDate
|
||||
*
|
||||
* @param epochDay the Epoch Day to convert, based on the epoch 1970-01-01
|
||||
* @return the local date, not null
|
||||
* @throws DateTimeException if the epoch days exceeds the supported date range
|
||||
* @throws DateTimeException if the epoch day exceeds the supported date range
|
||||
*/
|
||||
public static LocalDate ofEpochDay(long epochDay) {
|
||||
long zeroDay = epochDay + DAYS_0000_TO_1970;
|
||||
@ -515,7 +515,7 @@ public final class LocalDate
|
||||
/**
|
||||
* Checks if the specified unit is supported.
|
||||
* <p>
|
||||
* This checks if the specified unit can be added to, or subtracted from, this date-time.
|
||||
* This checks if the specified unit can be added to, or subtracted from, this date.
|
||||
* If false, then calling the {@link #plus(long, TemporalUnit)} and
|
||||
* {@link #minus(long, TemporalUnit) minus} methods will throw an exception.
|
||||
* <p>
|
||||
@ -592,7 +592,7 @@ public final class LocalDate
|
||||
/**
|
||||
* Gets the value of the specified field from this date as an {@code int}.
|
||||
* <p>
|
||||
* This queries this date for the value for the specified field.
|
||||
* This queries this date for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -600,7 +600,7 @@ public final class LocalDate
|
||||
* If the field is a {@link ChronoField} then the query is implemented here.
|
||||
* The {@link #isSupported(TemporalField) supported fields} will return valid
|
||||
* values based on this date, except {@code EPOCH_DAY} and {@code PROLEPTIC_MONTH}
|
||||
* which are too large to fit in an {@code int} and throw a {@code DateTimeException}.
|
||||
* which are too large to fit in an {@code int} and throw an {@code UnsupportedTemporalTypeException}.
|
||||
* All other {@code ChronoField} instances will throw an {@code UnsupportedTemporalTypeException}.
|
||||
* <p>
|
||||
* If the field is not a {@code ChronoField}, then the result of this method
|
||||
@ -627,7 +627,7 @@ public final class LocalDate
|
||||
/**
|
||||
* Gets the value of the specified field from this date as a {@code long}.
|
||||
* <p>
|
||||
* This queries this date for the value for the specified field.
|
||||
* This queries this date for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -875,7 +875,9 @@ public final class LocalDate
|
||||
* <p>
|
||||
* A simple adjuster might simply set the one of the fields, such as the year field.
|
||||
* A more complex adjuster might set the date to the last day of the month.
|
||||
* A selection of common adjustments is provided in {@link TemporalAdjuster}.
|
||||
* <p>
|
||||
* A selection of common adjustments is provided in
|
||||
* {@link java.time.temporal.TemporalAdjusters TemporalAdjusters}.
|
||||
* These include finding the "last day of the month" and "next Wednesday".
|
||||
* Key date-time classes also implement the {@code TemporalAdjuster} interface,
|
||||
* such as {@link Month} and {@link java.time.MonthDay MonthDay}.
|
||||
@ -885,7 +887,7 @@ public final class LocalDate
|
||||
* For example this code returns a date on the last day of July:
|
||||
* <pre>
|
||||
* import static java.time.Month.*;
|
||||
* import static java.time.temporal.Adjusters.*;
|
||||
* import static java.time.temporal.TemporalAdjusters.*;
|
||||
*
|
||||
* result = localDate.with(JULY).with(lastDayOfMonth());
|
||||
* </pre>
|
||||
@ -1041,7 +1043,8 @@ public final class LocalDate
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this date with the year altered.
|
||||
* Returns a copy of this {@code LocalDate} with the year altered.
|
||||
* <p>
|
||||
* If the day-of-month is invalid for the year, it will be changed to the last valid day of the month.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
@ -1059,7 +1062,8 @@ public final class LocalDate
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this date with the month-of-year altered.
|
||||
* Returns a copy of this {@code LocalDate} with the month-of-year altered.
|
||||
* <p>
|
||||
* If the day-of-month is invalid for the year, it will be changed to the last valid day of the month.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
@ -1077,7 +1081,8 @@ public final class LocalDate
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this date with the day-of-month altered.
|
||||
* Returns a copy of this {@code LocalDate} with the day-of-month altered.
|
||||
* <p>
|
||||
* If the resulting date is invalid, an exception is thrown.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
@ -1095,7 +1100,8 @@ public final class LocalDate
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this date with the day-of-year altered.
|
||||
* Returns a copy of this {@code LocalDate} with the day-of-year altered.
|
||||
* <p>
|
||||
* If the resulting date is invalid, an exception is thrown.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
@ -1245,7 +1251,7 @@ public final class LocalDate
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDate} with the specified period in years added.
|
||||
* Returns a copy of this {@code LocalDate} with the specified number of years added.
|
||||
* <p>
|
||||
* This method adds the specified amount to the years field in three steps:
|
||||
* <ol>
|
||||
@ -1273,7 +1279,7 @@ public final class LocalDate
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDate} with the specified period in months added.
|
||||
* Returns a copy of this {@code LocalDate} with the specified number of months added.
|
||||
* <p>
|
||||
* This method adds the specified amount to the months field in three steps:
|
||||
* <ol>
|
||||
@ -1304,7 +1310,7 @@ public final class LocalDate
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDate} with the specified period in weeks added.
|
||||
* Returns a copy of this {@code LocalDate} with the specified number of weeks added.
|
||||
* <p>
|
||||
* This method adds the specified amount in weeks to the days field incrementing
|
||||
* the month and year fields as necessary to ensure the result remains valid.
|
||||
@ -1402,11 +1408,11 @@ public final class LocalDate
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDate} with the specified period in years subtracted.
|
||||
* Returns a copy of this {@code LocalDate} with the specified number of years subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount from the years field in three steps:
|
||||
* <ol>
|
||||
* <li>Subtract the input years to the year field</li>
|
||||
* <li>Subtract the input years from the year field</li>
|
||||
* <li>Check if the resulting date would be invalid</li>
|
||||
* <li>Adjust the day-of-month to the last valid day if necessary</li>
|
||||
* </ol>
|
||||
@ -1426,11 +1432,11 @@ public final class LocalDate
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDate} with the specified period in months subtracted.
|
||||
* Returns a copy of this {@code LocalDate} with the specified number of months subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount from the months field in three steps:
|
||||
* <ol>
|
||||
* <li>Subtract the input months to the month-of-year field</li>
|
||||
* <li>Subtract the input months from the month-of-year field</li>
|
||||
* <li>Check if the resulting date would be invalid</li>
|
||||
* <li>Adjust the day-of-month to the last valid day if necessary</li>
|
||||
* </ol>
|
||||
@ -1450,7 +1456,7 @@ public final class LocalDate
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDate} with the specified period in weeks subtracted.
|
||||
* Returns a copy of this {@code LocalDate} with the specified number of weeks subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount in weeks from the days field decrementing
|
||||
* the month and year fields as necessary to ensure the result remains valid.
|
||||
|
||||
@ -428,7 +428,7 @@ public final class LocalDateTime
|
||||
/**
|
||||
* Obtains an instance of {@code LocalDateTime} from a temporal object.
|
||||
* <p>
|
||||
* This obtains an offset time based on the specified temporal.
|
||||
* This obtains a local date-time based on the specified temporal.
|
||||
* A {@code TemporalAccessor} represents an arbitrary set of date and time information,
|
||||
* which this factory converts to an instance of {@code LocalDateTime}.
|
||||
* <p>
|
||||
@ -656,7 +656,7 @@ public final class LocalDateTime
|
||||
/**
|
||||
* Gets the value of the specified field from this date-time as an {@code int}.
|
||||
* <p>
|
||||
* This queries this date-time for the value for the specified field.
|
||||
* This queries this date-time for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -665,7 +665,7 @@ public final class LocalDateTime
|
||||
* The {@link #isSupported(TemporalField) supported fields} will return valid
|
||||
* values based on this date-time, except {@code NANO_OF_DAY}, {@code MICRO_OF_DAY},
|
||||
* {@code EPOCH_DAY} and {@code PROLEPTIC_MONTH} which are too large to fit in
|
||||
* an {@code int} and throw a {@code DateTimeException}.
|
||||
* an {@code int} and throw a {@code UnsupportedTemporalTypeException}.
|
||||
* All other {@code ChronoField} instances will throw an {@code UnsupportedTemporalTypeException}.
|
||||
* <p>
|
||||
* If the field is not a {@code ChronoField}, then the result of this method
|
||||
@ -693,7 +693,7 @@ public final class LocalDateTime
|
||||
/**
|
||||
* Gets the value of the specified field from this date-time as a {@code long}.
|
||||
* <p>
|
||||
* This queries this date-time for the value for the specified field.
|
||||
* This queries this date-time for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -878,7 +878,9 @@ public final class LocalDateTime
|
||||
* <p>
|
||||
* A simple adjuster might simply set the one of the fields, such as the year field.
|
||||
* A more complex adjuster might set the date to the last day of the month.
|
||||
* A selection of common adjustments is provided in {@link TemporalAdjuster}.
|
||||
* <p>
|
||||
* A selection of common adjustments is provided in
|
||||
* {@link java.time.temporal.TemporalAdjusters TemporalAdjusters}.
|
||||
* These include finding the "last day of the month" and "next Wednesday".
|
||||
* Key date-time classes also implement the {@code TemporalAdjuster} interface,
|
||||
* such as {@link Month} and {@link java.time.MonthDay MonthDay}.
|
||||
@ -888,7 +890,7 @@ public final class LocalDateTime
|
||||
* For example this code returns a date on the last day of July:
|
||||
* <pre>
|
||||
* import static java.time.Month.*;
|
||||
* import static java.time.temporal.Adjusters.*;
|
||||
* import static java.time.temporal.TemporalAdjusters.*;
|
||||
*
|
||||
* result = localDateTime.with(JULY).with(lastDayOfMonth());
|
||||
* </pre>
|
||||
@ -974,6 +976,7 @@ public final class LocalDateTime
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the year altered.
|
||||
* <p>
|
||||
* The time does not affect the calculation and will be the same in the result.
|
||||
* If the day-of-month is invalid for the year, it will be changed to the last valid day of the month.
|
||||
* <p>
|
||||
@ -989,6 +992,7 @@ public final class LocalDateTime
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the month-of-year altered.
|
||||
* <p>
|
||||
* The time does not affect the calculation and will be the same in the result.
|
||||
* If the day-of-month is invalid for the year, it will be changed to the last valid day of the month.
|
||||
* <p>
|
||||
@ -1004,7 +1008,8 @@ public final class LocalDateTime
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the day-of-month altered.
|
||||
* If the resulting {@code LocalDateTime} is invalid, an exception is thrown.
|
||||
* <p>
|
||||
* If the resulting date-time is invalid, an exception is thrown.
|
||||
* The time does not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
@ -1020,7 +1025,8 @@ public final class LocalDateTime
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the day-of-year altered.
|
||||
* If the resulting {@code LocalDateTime} is invalid, an exception is thrown.
|
||||
* <p>
|
||||
* If the resulting date-time is invalid, an exception is thrown.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1035,7 +1041,7 @@ public final class LocalDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the hour-of-day value altered.
|
||||
* Returns a copy of this {@code LocalDateTime} with the hour-of-day altered.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1049,7 +1055,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the minute-of-hour value altered.
|
||||
* Returns a copy of this {@code LocalDateTime} with the minute-of-hour altered.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1063,7 +1069,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the second-of-minute value altered.
|
||||
* Returns a copy of this {@code LocalDateTime} with the second-of-minute altered.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1077,7 +1083,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the nano-of-second value altered.
|
||||
* Returns a copy of this {@code LocalDateTime} with the nano-of-second altered.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1109,7 +1115,7 @@ public final class LocalDateTime
|
||||
* @param unit the unit to truncate to, not null
|
||||
* @return a {@code LocalDateTime} based on this date-time with the time truncated, not null
|
||||
* @throws DateTimeException if unable to truncate
|
||||
* @throws UnsupportedTemporalTypeException if the field is not supported
|
||||
* @throws UnsupportedTemporalTypeException if the unit is not supported
|
||||
*/
|
||||
public LocalDateTime truncatedTo(TemporalUnit unit) {
|
||||
return with(date, time.truncatedTo(unit));
|
||||
@ -1192,7 +1198,7 @@ public final class LocalDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in years added.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of years added.
|
||||
* <p>
|
||||
* This method adds the specified amount to the years field in three steps:
|
||||
* <ol>
|
||||
@ -1217,7 +1223,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in months added.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of months added.
|
||||
* <p>
|
||||
* This method adds the specified amount to the months field in three steps:
|
||||
* <ol>
|
||||
@ -1242,7 +1248,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in weeks added.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of weeks added.
|
||||
* <p>
|
||||
* This method adds the specified amount in weeks to the days field incrementing
|
||||
* the month and year fields as necessary to ensure the result remains valid.
|
||||
@ -1262,7 +1268,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in days added.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of days added.
|
||||
* <p>
|
||||
* This method adds the specified amount to the days field incrementing the
|
||||
* month and year fields as necessary to ensure the result remains valid.
|
||||
@ -1283,7 +1289,7 @@ public final class LocalDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in hours added.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of hours added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1296,7 +1302,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in minutes added.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of minutes added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1309,7 +1315,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in seconds added.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of seconds added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1322,7 +1328,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in nanoseconds added.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of nanoseconds added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1391,7 +1397,7 @@ public final class LocalDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in years subtracted.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of years subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount from the years field in three steps:
|
||||
* <ol>
|
||||
@ -1415,7 +1421,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in months subtracted.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of months subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount from the months field in three steps:
|
||||
* <ol>
|
||||
@ -1439,7 +1445,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in weeks subtracted.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of weeks subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount in weeks from the days field decrementing
|
||||
* the month and year fields as necessary to ensure the result remains valid.
|
||||
@ -1458,9 +1464,9 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in days subtracted.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of days subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount from the days field incrementing the
|
||||
* This method subtracts the specified amount from the days field decrementing the
|
||||
* month and year fields as necessary to ensure the result remains valid.
|
||||
* The result is only invalid if the maximum/minimum year is exceeded.
|
||||
* <p>
|
||||
@ -1478,7 +1484,7 @@ public final class LocalDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in hours subtracted.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of hours subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1491,7 +1497,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in minutes subtracted.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of minutes subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1504,7 +1510,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in seconds subtracted.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of seconds subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1517,7 +1523,7 @@ public final class LocalDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified period in nanoseconds subtracted.
|
||||
* Returns a copy of this {@code LocalDateTime} with the specified number of nanoseconds subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1575,7 +1581,7 @@ public final class LocalDateTime
|
||||
* what the result of this method will be.
|
||||
* <p>
|
||||
* The result of this method is obtained by invoking the
|
||||
* {@link java.time.temporal.TemporalQuery#queryFrom(TemporalAccessor)} method on the
|
||||
* {@link TemporalQuery#queryFrom(TemporalAccessor)} method on the
|
||||
* specified query passing {@code this} as the argument.
|
||||
*
|
||||
* @param <R> the type of the result
|
||||
|
||||
@ -93,7 +93,7 @@ import java.time.temporal.ValueRange;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* A time without time-zone in the ISO-8601 calendar system,
|
||||
* A time without a time-zone in the ISO-8601 calendar system,
|
||||
* such as {@code 10:15:30}.
|
||||
* <p>
|
||||
* {@code LocalTime} is an immutable date-time object that represents a time,
|
||||
@ -101,7 +101,7 @@ import java.util.Objects;
|
||||
* Time is represented to nanosecond precision.
|
||||
* For example, the value "13:45.30.123456789" can be stored in a {@code LocalTime}.
|
||||
* <p>
|
||||
* It does not store or represent a date or time-zone.
|
||||
* This class does not store or represent a date or time-zone.
|
||||
* Instead, it is a description of the local time as seen on a wall clock.
|
||||
* It cannot represent an instant on the time-line without additional information
|
||||
* such as an offset or time-zone.
|
||||
@ -280,7 +280,7 @@ public final class LocalTime
|
||||
return ofNanoOfDay(secsOfDay * NANOS_PER_SECOND + now.getNano());
|
||||
}
|
||||
|
||||
//------------------------get-----------------------------------------------
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Obtains an instance of {@code LocalTime} from an hour and minute.
|
||||
* <p>
|
||||
@ -395,7 +395,7 @@ public final class LocalTime
|
||||
* on extracting the {@link ChronoField#NANO_OF_DAY NANO_OF_DAY} field.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code LocalTime::from}.
|
||||
* allowing it to be used as a query via method reference, {@code LocalTime::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the local time, not null
|
||||
@ -418,7 +418,7 @@ public final class LocalTime
|
||||
* The string must represent a valid time and is parsed using
|
||||
* {@link java.time.format.DateTimeFormatter#ISO_LOCAL_TIME}.
|
||||
*
|
||||
* @param text the text to parse such as "10:15:30", not null
|
||||
* @param text the text to parse such as "10:15:30", not null
|
||||
* @return the parsed local time, not null
|
||||
* @throws DateTimeParseException if the text cannot be parsed
|
||||
*/
|
||||
@ -524,7 +524,7 @@ public final class LocalTime
|
||||
/**
|
||||
* Checks if the specified unit is supported.
|
||||
* <p>
|
||||
* This checks if the specified unit can be added to, or subtracted from, this date-time.
|
||||
* This checks if the specified unit can be added to, or subtracted from, this time.
|
||||
* If false, then calling the {@link #plus(long, TemporalUnit)} and
|
||||
* {@link #minus(long, TemporalUnit) minus} methods will throw an exception.
|
||||
* <p>
|
||||
@ -589,7 +589,7 @@ public final class LocalTime
|
||||
/**
|
||||
* Gets the value of the specified field from this time as an {@code int}.
|
||||
* <p>
|
||||
* This queries this time for the value for the specified field.
|
||||
* This queries this time for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -597,7 +597,7 @@ public final class LocalTime
|
||||
* If the field is a {@link ChronoField} then the query is implemented here.
|
||||
* The {@link #isSupported(TemporalField) supported fields} will return valid
|
||||
* values based on this time, except {@code NANO_OF_DAY} and {@code MICRO_OF_DAY}
|
||||
* which are too large to fit in an {@code int} and throw a {@code DateTimeException}.
|
||||
* which are too large to fit in an {@code int} and throw a {@code UnsupportedTemporalTypeException}.
|
||||
* All other {@code ChronoField} instances will throw an {@code UnsupportedTemporalTypeException}.
|
||||
* <p>
|
||||
* If the field is not a {@code ChronoField}, then the result of this method
|
||||
@ -624,7 +624,7 @@ public final class LocalTime
|
||||
/**
|
||||
* Gets the value of the specified field from this time as a {@code long}.
|
||||
* <p>
|
||||
* This queries this time for the value for the specified field.
|
||||
* This queries this time for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -858,7 +858,7 @@ public final class LocalTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the hour-of-day value altered.
|
||||
* Returns a copy of this {@code LocalTime} with the hour-of-day altered.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -875,7 +875,7 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the minute-of-hour value altered.
|
||||
* Returns a copy of this {@code LocalTime} with the minute-of-hour altered.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -892,7 +892,7 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the second-of-minute value altered.
|
||||
* Returns a copy of this {@code LocalTime} with the second-of-minute altered.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -909,7 +909,7 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the nano-of-second value altered.
|
||||
* Returns a copy of this {@code LocalTime} with the nano-of-second altered.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -929,7 +929,7 @@ public final class LocalTime
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the time truncated.
|
||||
* <p>
|
||||
* Truncating the time returns a copy of the original time with fields
|
||||
* Truncation returns a copy of the original time with fields
|
||||
* smaller than the specified unit set to zero.
|
||||
* For example, truncating with the {@link ChronoUnit#MINUTES minutes} unit
|
||||
* will set the second-of-minute and nano-of-second field to zero.
|
||||
@ -1059,7 +1059,7 @@ public final class LocalTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the specified period in hours added.
|
||||
* Returns a copy of this {@code LocalTime} with the specified number of hours added.
|
||||
* <p>
|
||||
* This adds the specified number of hours to this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1078,7 +1078,7 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the specified period in minutes added.
|
||||
* Returns a copy of this {@code LocalTime} with the specified number of minutes added.
|
||||
* <p>
|
||||
* This adds the specified number of minutes to this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1103,7 +1103,7 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the specified period in seconds added.
|
||||
* Returns a copy of this {@code LocalTime} with the specified number of seconds added.
|
||||
* <p>
|
||||
* This adds the specified number of seconds to this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1130,7 +1130,7 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the specified period in nanoseconds added.
|
||||
* Returns a copy of this {@code LocalTime} with the specified number of nanoseconds added.
|
||||
* <p>
|
||||
* This adds the specified number of nanoseconds to this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1208,7 +1208,7 @@ public final class LocalTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the specified period in hours subtracted.
|
||||
* Returns a copy of this {@code LocalTime} with the specified number of hours subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified number of hours from this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1223,7 +1223,7 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the specified period in minutes subtracted.
|
||||
* Returns a copy of this {@code LocalTime} with the specified number of minutes subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified number of minutes from this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1238,7 +1238,7 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the specified period in seconds subtracted.
|
||||
* Returns a copy of this {@code LocalTime} with the specified number of seconds subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified number of seconds from this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1253,7 +1253,7 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code LocalTime} with the specified period in nanoseconds subtracted.
|
||||
* Returns a copy of this {@code LocalTime} with the specified number of nanoseconds subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified number of nanoseconds from this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1470,14 +1470,13 @@ public final class LocalTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Compares this {@code LocalTime} to another time.
|
||||
* Compares this time to another time.
|
||||
* <p>
|
||||
* The comparison is based on the time-line position of the local times within a day.
|
||||
* It is "consistent with equals", as defined by {@link Comparable}.
|
||||
*
|
||||
* @param other the other time to compare to, not null
|
||||
* @return the comparator value, negative if less, positive if greater
|
||||
* @throws NullPointerException if {@code other} is null
|
||||
*/
|
||||
@Override
|
||||
public int compareTo(LocalTime other) {
|
||||
@ -1495,26 +1494,24 @@ public final class LocalTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if this {@code LocalTime} is after the specified time.
|
||||
* Checks if this time is after the specified time.
|
||||
* <p>
|
||||
* The comparison is based on the time-line position of the time within a day.
|
||||
*
|
||||
* @param other the other time to compare to, not null
|
||||
* @return true if this is after the specified time
|
||||
* @throws NullPointerException if {@code other} is null
|
||||
*/
|
||||
public boolean isAfter(LocalTime other) {
|
||||
return compareTo(other) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if this {@code LocalTime} is before the specified time.
|
||||
* Checks if this time is before the specified time.
|
||||
* <p>
|
||||
* The comparison is based on the time-line position of the time within a day.
|
||||
*
|
||||
* @param other the other time to compare to, not null
|
||||
* @return true if this point is before the specified time
|
||||
* @throws NullPointerException if {@code other} is null
|
||||
*/
|
||||
public boolean isBefore(LocalTime other) {
|
||||
return compareTo(other) < 0;
|
||||
|
||||
@ -202,7 +202,7 @@ public enum Month implements TemporalAccessor, TemporalAdjuster {
|
||||
* chronology, or can be converted to a {@code LocalDate}.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code Month::from}.
|
||||
* allowing it to be used as a query via method reference, {@code Month::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the month-of-year, not null
|
||||
@ -315,7 +315,7 @@ public enum Month implements TemporalAccessor, TemporalAdjuster {
|
||||
/**
|
||||
* Gets the value of the specified field from this month-of-year as an {@code int}.
|
||||
* <p>
|
||||
* This queries this month for the value for the specified field.
|
||||
* This queries this month for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -348,7 +348,7 @@ public enum Month implements TemporalAccessor, TemporalAdjuster {
|
||||
/**
|
||||
* Gets the value of the specified field from this month-of-year as a {@code long}.
|
||||
* <p>
|
||||
* This queries this month for the value for the specified field.
|
||||
* This queries this month for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
|
||||
@ -90,8 +90,8 @@ import java.util.Objects;
|
||||
* A month-day in the ISO-8601 calendar system, such as {@code --12-03}.
|
||||
* <p>
|
||||
* {@code MonthDay} is an immutable date-time object that represents the combination
|
||||
* of a year and month. Any field that can be derived from a month and day, such as
|
||||
* quarter-of-year, can be obtained.
|
||||
* of a month and day-of-month. Any field that can be derived from a month and day,
|
||||
* such as quarter-of-year, can be obtained.
|
||||
* <p>
|
||||
* This class does not store or represent a year, time or time-zone.
|
||||
* For example, the value "December 3rd" can be stored in a {@code MonthDay}.
|
||||
@ -154,7 +154,7 @@ public final class MonthDay
|
||||
/**
|
||||
* Obtains the current month-day from the system clock in the default time-zone.
|
||||
* <p>
|
||||
* This will query the {@link java.time.Clock#systemDefaultZone() system clock} in the default
|
||||
* This will query the {@link Clock#systemDefaultZone() system clock} in the default
|
||||
* time-zone to obtain the current month-day.
|
||||
* <p>
|
||||
* Using this method will prevent the ability to use an alternate clock for testing
|
||||
@ -169,7 +169,7 @@ public final class MonthDay
|
||||
/**
|
||||
* Obtains the current month-day from the system clock in the specified time-zone.
|
||||
* <p>
|
||||
* This will query the {@link Clock#system(java.time.ZoneId) system clock} to obtain the current month-day.
|
||||
* This will query the {@link Clock#system(ZoneId) system clock} to obtain the current month-day.
|
||||
* Specifying the time-zone avoids dependence on the default time-zone.
|
||||
* <p>
|
||||
* Using this method will prevent the ability to use an alternate clock for testing
|
||||
@ -258,7 +258,7 @@ public final class MonthDay
|
||||
* chronology, or can be converted to a {@code LocalDate}.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code MonthDay::from}.
|
||||
* allowing it to be used as a query via method reference, {@code MonthDay::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the month-day, not null
|
||||
@ -389,7 +389,7 @@ public final class MonthDay
|
||||
/**
|
||||
* Gets the value of the specified field from this month-day as an {@code int}.
|
||||
* <p>
|
||||
* This queries this month-day for the value for the specified field.
|
||||
* This queries this month-day for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -420,7 +420,7 @@ public final class MonthDay
|
||||
/**
|
||||
* Gets the value of the specified field from this month-day as a {@code long}.
|
||||
* <p>
|
||||
* This queries this month-day for the value for the specified field.
|
||||
* This queries this month-day for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -501,7 +501,7 @@ public final class MonthDay
|
||||
* This method checks whether this month and day and the input year form
|
||||
* a valid date. This can only return false for February 29th.
|
||||
*
|
||||
* @param year the year to validate, an out of range value returns false
|
||||
* @param year the year to validate
|
||||
* @return true if the year is valid for this month-day
|
||||
* @see Year#isValidMonthDay(MonthDay)
|
||||
*/
|
||||
@ -685,7 +685,7 @@ public final class MonthDay
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this month-day after the specified month-day.
|
||||
* Checks if this month-day is after the specified month-day.
|
||||
*
|
||||
* @param other the other month-day to compare to, not null
|
||||
* @return true if this is after the specified month-day
|
||||
@ -695,7 +695,7 @@ public final class MonthDay
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this month-day before the specified month-day.
|
||||
* Checks if this month-day is before the specified month-day.
|
||||
*
|
||||
* @param other the other month-day to compare to, not null
|
||||
* @return true if this point is before the specified month-day
|
||||
|
||||
@ -199,7 +199,7 @@ public final class OffsetDateTime
|
||||
/**
|
||||
* Obtains the current date-time from the system clock in the default time-zone.
|
||||
* <p>
|
||||
* This will query the {@link java.time.Clock#systemDefaultZone() system clock} in the default
|
||||
* This will query the {@link Clock#systemDefaultZone() system clock} in the default
|
||||
* time-zone to obtain the current date-time.
|
||||
* The offset will be calculated from the time-zone in the clock.
|
||||
* <p>
|
||||
@ -215,7 +215,7 @@ public final class OffsetDateTime
|
||||
/**
|
||||
* Obtains the current date-time from the system clock in the specified time-zone.
|
||||
* <p>
|
||||
* This will query the {@link Clock#system(java.time.ZoneId) system clock} to obtain the current date-time.
|
||||
* This will query the {@link Clock#system(ZoneId) system clock} to obtain the current date-time.
|
||||
* Specifying the time-zone avoids dependence on the default time-zone.
|
||||
* The offset will be calculated from the specified time-zone.
|
||||
* <p>
|
||||
@ -345,7 +345,7 @@ public final class OffsetDateTime
|
||||
* those fields that are equivalent to the relevant objects.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code OffsetDateTime::from}.
|
||||
* allowing it to be used as a query via method reference, {@code OffsetDateTime::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the offset date-time, not null
|
||||
@ -566,7 +566,7 @@ public final class OffsetDateTime
|
||||
/**
|
||||
* Gets the value of the specified field from this date-time as an {@code int}.
|
||||
* <p>
|
||||
* This queries this date-time for the value for the specified field.
|
||||
* This queries this date-time for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -575,7 +575,7 @@ public final class OffsetDateTime
|
||||
* The {@link #isSupported(TemporalField) supported fields} will return valid
|
||||
* values based on this date-time, except {@code NANO_OF_DAY}, {@code MICRO_OF_DAY},
|
||||
* {@code EPOCH_DAY}, {@code PROLEPTIC_MONTH} and {@code INSTANT_SECONDS} which are too
|
||||
* large to fit in an {@code int} and throw a {@code DateTimeException}.
|
||||
* large to fit in an {@code int} and throw a {@code UnsupportedTemporalTypeException}.
|
||||
* All other {@code ChronoField} instances will throw an {@code UnsupportedTemporalTypeException}.
|
||||
* <p>
|
||||
* If the field is not a {@code ChronoField}, then the result of this method
|
||||
@ -608,7 +608,7 @@ public final class OffsetDateTime
|
||||
/**
|
||||
* Gets the value of the specified field from this date-time as a {@code long}.
|
||||
* <p>
|
||||
* This queries this date-time for the value for the specified field.
|
||||
* This queries this date-time for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -703,7 +703,7 @@ public final class OffsetDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Gets the {@code LocalDateTime} part of this offset date-time.
|
||||
* Gets the {@code LocalDateTime} part of this date-time.
|
||||
* <p>
|
||||
* This returns a {@code LocalDateTime} with the same year, month, day and time
|
||||
* as this date-time.
|
||||
@ -795,10 +795,10 @@ public final class OffsetDateTime
|
||||
/**
|
||||
* Gets the day-of-week field, which is an enum {@code DayOfWeek}.
|
||||
* <p>
|
||||
* This method returns the enum {@link java.time.DayOfWeek} for the day-of-week.
|
||||
* This method returns the enum {@link DayOfWeek} for the day-of-week.
|
||||
* This avoids confusion as to what {@code int} values mean.
|
||||
* If you need access to the primitive {@code int} value then the enum
|
||||
* provides the {@link java.time.DayOfWeek#getValue() int value}.
|
||||
* provides the {@link DayOfWeek#getValue() int value}.
|
||||
* <p>
|
||||
* Additional information can be obtained from the {@code DayOfWeek}.
|
||||
* This includes textual names of the values.
|
||||
@ -868,7 +868,8 @@ public final class OffsetDateTime
|
||||
* <p>
|
||||
* A simple adjuster might simply set the one of the fields, such as the year field.
|
||||
* A more complex adjuster might set the date to the last day of the month.
|
||||
* A selection of common adjustments is provided in {@link TemporalAdjuster}.
|
||||
* A selection of common adjustments is provided in
|
||||
* {@link java.time.temporal.TemporalAdjusters TemporalAdjusters}.
|
||||
* These include finding the "last day of the month" and "next Wednesday".
|
||||
* Key date-time classes also implement the {@code TemporalAdjuster} interface,
|
||||
* such as {@link Month} and {@link java.time.MonthDay MonthDay}.
|
||||
@ -878,7 +879,7 @@ public final class OffsetDateTime
|
||||
* For example this code returns a date on the last day of July:
|
||||
* <pre>
|
||||
* import static java.time.Month.*;
|
||||
* import static java.time.temporal.Adjusters.*;
|
||||
* import static java.time.temporal.TemporalAdjusters.*;
|
||||
*
|
||||
* result = offsetDateTime.with(JULY).with(lastDayOfMonth());
|
||||
* </pre>
|
||||
@ -920,7 +921,7 @@ public final class OffsetDateTime
|
||||
/**
|
||||
* Returns a copy of this date-time with the specified field set to a new value.
|
||||
* <p>
|
||||
* TThis returns an {@code OffsetDateTime}, based on this one, with the value
|
||||
* This returns an {@code OffsetDateTime}, based on this one, with the value
|
||||
* for the specified field changed.
|
||||
* This can be used to change any supported field, such as the year, month or day-of-month.
|
||||
* If it is not possible to set the value, because the field is not supported or for
|
||||
@ -979,7 +980,8 @@ public final class OffsetDateTime
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the year altered.
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
* The time and offset do not affect the calculation and will be the same in the result.
|
||||
* If the day-of-month is invalid for the year, it will be changed to the last valid day of the month.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
@ -994,7 +996,8 @@ public final class OffsetDateTime
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the month-of-year altered.
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
* The time and offset do not affect the calculation and will be the same in the result.
|
||||
* If the day-of-month is invalid for the year, it will be changed to the last valid day of the month.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
@ -1009,8 +1012,9 @@ public final class OffsetDateTime
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the day-of-month altered.
|
||||
* <p>
|
||||
* If the resulting {@code OffsetDateTime} is invalid, an exception is thrown.
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* The time and offset do not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1025,6 +1029,8 @@ public final class OffsetDateTime
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the day-of-year altered.
|
||||
* <p>
|
||||
* The time and offset do not affect the calculation and will be the same in the result.
|
||||
* If the resulting {@code OffsetDateTime} is invalid, an exception is thrown.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
@ -1040,9 +1046,9 @@ public final class OffsetDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the hour-of-day value altered.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the hour-of-day altered.
|
||||
* <p>
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* The date and offset do not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1055,9 +1061,9 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the minute-of-hour value altered.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the minute-of-hour altered.
|
||||
* <p>
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* The date and offset do not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1070,9 +1076,9 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the second-of-minute value altered.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the second-of-minute altered.
|
||||
* <p>
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* The date and offset do not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1085,15 +1091,15 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the nano-of-second value altered.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the nano-of-second altered.
|
||||
* <p>
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* The date and offset do not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
* @param nanoOfSecond the nano-of-second to set in the result, from 0 to 999,999,999
|
||||
* @return an {@code OffsetDateTime} based on this date-time with the requested nanosecond, not null
|
||||
* @throws DateTimeException if the nanos value is invalid
|
||||
* @throws DateTimeException if the nano value is invalid
|
||||
*/
|
||||
public OffsetDateTime withNano(int nanoOfSecond) {
|
||||
return with(dateTime.withNano(nanoOfSecond), offset);
|
||||
@ -1187,7 +1193,7 @@ public final class OffsetDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in years added.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of years added.
|
||||
* <p>
|
||||
* This method adds the specified amount to the years field in three steps:
|
||||
* <ol>
|
||||
@ -1211,7 +1217,7 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in months added.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of months added.
|
||||
* <p>
|
||||
* This method adds the specified amount to the months field in three steps:
|
||||
* <ol>
|
||||
@ -1235,13 +1241,13 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this OffsetDateTime with the specified period in weeks added.
|
||||
* Returns a copy of this OffsetDateTime with the specified number of weeks added.
|
||||
* <p>
|
||||
* This method adds the specified amount in weeks to the days field incrementing
|
||||
* the month and year fields as necessary to ensure the result remains valid.
|
||||
* The result is only invalid if the maximum/minimum year is exceeded.
|
||||
* <p>
|
||||
* For example, 2008-12-31 plus one week would result in the 2009-01-07.
|
||||
* For example, 2008-12-31 plus one week would result in 2009-01-07.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1254,13 +1260,13 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this OffsetDateTime with the specified period in days added.
|
||||
* Returns a copy of this OffsetDateTime with the specified number of days added.
|
||||
* <p>
|
||||
* This method adds the specified amount to the days field incrementing the
|
||||
* month and year fields as necessary to ensure the result remains valid.
|
||||
* The result is only invalid if the maximum/minimum year is exceeded.
|
||||
* <p>
|
||||
* For example, 2008-12-31 plus one day would result in the 2009-01-01.
|
||||
* For example, 2008-12-31 plus one day would result in 2009-01-01.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1273,7 +1279,7 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in hours added.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of hours added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1286,7 +1292,7 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in minutes added.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of minutes added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1299,7 +1305,7 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in seconds added.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of seconds added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1312,7 +1318,7 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in nanoseconds added.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of nanoseconds added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1376,11 +1382,11 @@ public final class OffsetDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in years subtracted.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of years subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount from the years field in three steps:
|
||||
* <ol>
|
||||
* <li>Subtract the input years to the year field</li>
|
||||
* <li>Subtract the input years from the year field</li>
|
||||
* <li>Check if the resulting date would be invalid</li>
|
||||
* <li>Adjust the day-of-month to the last valid day if necessary</li>
|
||||
* </ol>
|
||||
@ -1400,11 +1406,11 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in months subtracted.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of months subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount from the months field in three steps:
|
||||
* <ol>
|
||||
* <li>Subtract the input months to the month-of-year field</li>
|
||||
* <li>Subtract the input months from the month-of-year field</li>
|
||||
* <li>Check if the resulting date would be invalid</li>
|
||||
* <li>Adjust the day-of-month to the last valid day if necessary</li>
|
||||
* </ol>
|
||||
@ -1424,13 +1430,13 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in weeks subtracted.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of weeks subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount in weeks from the days field decrementing
|
||||
* the month and year fields as necessary to ensure the result remains valid.
|
||||
* The result is only invalid if the maximum/minimum year is exceeded.
|
||||
* <p>
|
||||
* For example, 2008-12-31 minus one week would result in the 2009-01-07.
|
||||
* For example, 2008-12-31 minus one week would result in 2009-01-07.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1443,13 +1449,13 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in days subtracted.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of days subtracted.
|
||||
* <p>
|
||||
* This method subtracts the specified amount from the days field incrementing the
|
||||
* This method subtracts the specified amount from the days field decrementing the
|
||||
* month and year fields as necessary to ensure the result remains valid.
|
||||
* The result is only invalid if the maximum/minimum year is exceeded.
|
||||
* <p>
|
||||
* For example, 2008-12-31 minus one day would result in the 2009-01-01.
|
||||
* For example, 2008-12-31 minus one day would result in 2009-01-01.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1462,7 +1468,7 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in hours subtracted.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of hours subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1475,7 +1481,7 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in minutes subtracted.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of minutes subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1488,7 +1494,7 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in seconds subtracted.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of seconds subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1501,7 +1507,7 @@ public final class OffsetDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified period in nanoseconds subtracted.
|
||||
* Returns a copy of this {@code OffsetDateTime} with the specified number of nanoseconds subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1598,7 +1604,7 @@ public final class OffsetDateTime
|
||||
* objects in terms of a single {@code TemporalUnit}.
|
||||
* The start and end points are {@code this} and the specified date-time.
|
||||
* The result will be negative if the end is before the start.
|
||||
* For example, the period in days between two date-times can be calculated
|
||||
* For example, the amount in days between two date-times can be calculated
|
||||
* using {@code startDateTime.until(endDateTime, DAYS)}.
|
||||
* <p>
|
||||
* The {@code Temporal} passed to this method is converted to a
|
||||
@ -1608,7 +1614,7 @@ public final class OffsetDateTime
|
||||
* <p>
|
||||
* The calculation returns a whole number, representing the number of
|
||||
* complete units between the two date-times.
|
||||
* For example, the period in months between 2012-06-15T00:00Z and 2012-08-14T23:59Z
|
||||
* For example, the amount in months between 2012-06-15T00:00Z and 2012-08-14T23:59Z
|
||||
* will only be one month as it is one minute short of two months.
|
||||
* <p>
|
||||
* There are two equivalent ways of using this method.
|
||||
@ -1769,7 +1775,7 @@ public final class OffsetDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Compares this {@code OffsetDateTime} to another date-time.
|
||||
* Compares this date-time to another date-time.
|
||||
* <p>
|
||||
* The comparison is based on the instant then on the local date-time.
|
||||
* It is "consistent with equals", as defined by {@link Comparable}.
|
||||
|
||||
@ -153,14 +153,14 @@ public final class OffsetTime
|
||||
/**
|
||||
* Obtains the current time from the system clock in the default time-zone.
|
||||
* <p>
|
||||
* This will query the {@link java.time.Clock#systemDefaultZone() system clock} in the default
|
||||
* This will query the {@link Clock#systemDefaultZone() system clock} in the default
|
||||
* time-zone to obtain the current time.
|
||||
* The offset will be calculated from the time-zone in the clock.
|
||||
* <p>
|
||||
* Using this method will prevent the ability to use an alternate clock for testing
|
||||
* because the clock is hard-coded.
|
||||
*
|
||||
* @return the current time using the system clock, not null
|
||||
* @return the current time using the system clock and default time-zone, not null
|
||||
*/
|
||||
public static OffsetTime now() {
|
||||
return now(Clock.systemDefaultZone());
|
||||
@ -169,7 +169,7 @@ public final class OffsetTime
|
||||
/**
|
||||
* Obtains the current time from the system clock in the specified time-zone.
|
||||
* <p>
|
||||
* This will query the {@link Clock#system(java.time.ZoneId) system clock} to obtain the current time.
|
||||
* This will query the {@link Clock#system(ZoneId) system clock} to obtain the current time.
|
||||
* Specifying the time-zone avoids dependence on the default time-zone.
|
||||
* The offset will be calculated from the specified time-zone.
|
||||
* <p>
|
||||
@ -277,7 +277,7 @@ public final class OffsetTime
|
||||
* those fields that are equivalent to the relevant objects.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code OffsetTime::from}.
|
||||
* allowing it to be used as a query via method reference, {@code OffsetTime::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the offset time, not null
|
||||
@ -402,7 +402,7 @@ public final class OffsetTime
|
||||
/**
|
||||
* Checks if the specified unit is supported.
|
||||
* <p>
|
||||
* This checks if the specified unit can be added to, or subtracted from, this date-time.
|
||||
* This checks if the specified unit can be added to, or subtracted from, this offset-time.
|
||||
* If false, then calling the {@link #plus(long, TemporalUnit)} and
|
||||
* {@link #minus(long, TemporalUnit) minus} methods will throw an exception.
|
||||
* <p>
|
||||
@ -473,7 +473,7 @@ public final class OffsetTime
|
||||
/**
|
||||
* Gets the value of the specified field from this time as an {@code int}.
|
||||
* <p>
|
||||
* This queries this time for the value for the specified field.
|
||||
* This queries this time for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -481,7 +481,7 @@ public final class OffsetTime
|
||||
* If the field is a {@link ChronoField} then the query is implemented here.
|
||||
* The {@link #isSupported(TemporalField) supported fields} will return valid
|
||||
* values based on this time, except {@code NANO_OF_DAY} and {@code MICRO_OF_DAY}
|
||||
* which are too large to fit in an {@code int} and throw a {@code DateTimeException}.
|
||||
* which are too large to fit in an {@code int} and throw a {@code UnsupportedTemporalTypeException}.
|
||||
* All other {@code ChronoField} instances will throw an {@code UnsupportedTemporalTypeException}.
|
||||
* <p>
|
||||
* If the field is not a {@code ChronoField}, then the result of this method
|
||||
@ -505,7 +505,7 @@ public final class OffsetTime
|
||||
/**
|
||||
* Gets the value of the specified field from this time as a {@code long}.
|
||||
* <p>
|
||||
* This queries this time for the value for the specified field.
|
||||
* This queries this time for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -575,7 +575,7 @@ public final class OffsetTime
|
||||
* <p>
|
||||
* This method returns an object with the specified {@code ZoneOffset} and a {@code LocalTime}
|
||||
* adjusted by the difference between the two offsets.
|
||||
* This will result in the old and new objects representing the same instant an an implied day.
|
||||
* This will result in the old and new objects representing the same instant on an implied day.
|
||||
* This is useful for finding the local time in a different offset.
|
||||
* For example, if this time represents {@code 10:30+02:00} and the offset specified is
|
||||
* {@code +03:00}, then this method will return {@code 11:30+03:00}.
|
||||
@ -737,7 +737,7 @@ public final class OffsetTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the hour-of-day value altered.
|
||||
* Returns a copy of this {@code OffsetTime} with the hour-of-day altered.
|
||||
* <p>
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
@ -752,7 +752,7 @@ public final class OffsetTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the minute-of-hour value altered.
|
||||
* Returns a copy of this {@code OffsetTime} with the minute-of-hour altered.
|
||||
* <p>
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
@ -767,7 +767,7 @@ public final class OffsetTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the second-of-minute value altered.
|
||||
* Returns a copy of this {@code OffsetTime} with the second-of-minute altered.
|
||||
* <p>
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
@ -782,7 +782,7 @@ public final class OffsetTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the nano-of-second value altered.
|
||||
* Returns a copy of this {@code OffsetTime} with the nano-of-second altered.
|
||||
* <p>
|
||||
* The offset does not affect the calculation and will be the same in the result.
|
||||
* <p>
|
||||
@ -884,7 +884,7 @@ public final class OffsetTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the specified period in hours added.
|
||||
* Returns a copy of this {@code OffsetTime} with the specified number of hours added.
|
||||
* <p>
|
||||
* This adds the specified number of hours to this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -899,7 +899,7 @@ public final class OffsetTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the specified period in minutes added.
|
||||
* Returns a copy of this {@code OffsetTime} with the specified number of minutes added.
|
||||
* <p>
|
||||
* This adds the specified number of minutes to this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -914,7 +914,7 @@ public final class OffsetTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the specified period in seconds added.
|
||||
* Returns a copy of this {@code OffsetTime} with the specified number of seconds added.
|
||||
* <p>
|
||||
* This adds the specified number of seconds to this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -929,7 +929,7 @@ public final class OffsetTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the specified period in nanoseconds added.
|
||||
* Returns a copy of this {@code OffsetTime} with the specified number of nanoseconds added.
|
||||
* <p>
|
||||
* This adds the specified number of nanoseconds to this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -995,7 +995,7 @@ public final class OffsetTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the specified period in hours subtracted.
|
||||
* Returns a copy of this {@code OffsetTime} with the specified number of hours subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified number of hours from this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1010,7 +1010,7 @@ public final class OffsetTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the specified period in minutes subtracted.
|
||||
* Returns a copy of this {@code OffsetTime} with the specified number of minutes subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified number of minutes from this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1025,7 +1025,7 @@ public final class OffsetTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the specified period in seconds subtracted.
|
||||
* Returns a copy of this {@code OffsetTime} with the specified number of seconds subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified number of seconds from this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1040,7 +1040,7 @@ public final class OffsetTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code OffsetTime} with the specified period in nanoseconds subtracted.
|
||||
* Returns a copy of this {@code OffsetTime} with the specified number of nanoseconds subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified number of nanoseconds from this time, returning a new time.
|
||||
* The calculation wraps around midnight.
|
||||
@ -1130,7 +1130,7 @@ public final class OffsetTime
|
||||
* objects in terms of a single {@code TemporalUnit}.
|
||||
* The start and end points are {@code this} and the specified time.
|
||||
* The result will be negative if the end is before the start.
|
||||
* For example, the period in hours between two times can be calculated
|
||||
* For example, the amount in hours between two times can be calculated
|
||||
* using {@code startTime.until(endTime, HOURS)}.
|
||||
* <p>
|
||||
* The {@code Temporal} passed to this method is converted to a
|
||||
@ -1140,7 +1140,7 @@ public final class OffsetTime
|
||||
* <p>
|
||||
* The calculation returns a whole number, representing the number of
|
||||
* complete units between the two times.
|
||||
* For example, the period in hours between 11:30Z and 13:29Z will only
|
||||
* For example, the amount in hours between 11:30Z and 13:29Z will only
|
||||
* be one hour as it is one minute short of two hours.
|
||||
* <p>
|
||||
* There are two equivalent ways of using this method.
|
||||
@ -1165,7 +1165,7 @@ public final class OffsetTime
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
* @param endExclusive the end date, exclusive, which is converted to an {@code OffsetTime}, not null
|
||||
* @param endExclusive the end time, exclusive, which is converted to an {@code OffsetTime}, not null
|
||||
* @param unit the unit to measure the amount in, not null
|
||||
* @return the amount of time between this time and the end time
|
||||
* @throws DateTimeException if the amount cannot be calculated, or the end
|
||||
@ -1258,7 +1258,6 @@ public final class OffsetTime
|
||||
*
|
||||
* @param other the other time to compare to, not null
|
||||
* @return the comparator value, negative if less, positive if greater
|
||||
* @throws NullPointerException if {@code other} is null
|
||||
*/
|
||||
@Override
|
||||
public int compareTo(OffsetTime other) {
|
||||
|
||||
@ -616,7 +616,7 @@ public final class Period
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
* @param amountToAdd the period to add, not null
|
||||
* @param amountToAdd the amount to add, not null
|
||||
* @return a {@code Period} based on this period with the requested period added, not null
|
||||
* @throws DateTimeException if the specified amount has a non-ISO chronology or
|
||||
* contains an invalid unit
|
||||
@ -705,7 +705,7 @@ public final class Period
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
* @param amountToSubtract the period to subtract, not null
|
||||
* @param amountToSubtract the amount to subtract, not null
|
||||
* @return a {@code Period} based on this period with the requested period subtracted, not null
|
||||
* @throws DateTimeException if the specified amount has a non-ISO chronology or
|
||||
* contains an invalid unit
|
||||
|
||||
@ -164,7 +164,7 @@ public final class Year
|
||||
/**
|
||||
* Obtains the current year from the system clock in the default time-zone.
|
||||
* <p>
|
||||
* This will query the {@link java.time.Clock#systemDefaultZone() system clock} in the default
|
||||
* This will query the {@link Clock#systemDefaultZone() system clock} in the default
|
||||
* time-zone to obtain the current year.
|
||||
* <p>
|
||||
* Using this method will prevent the ability to use an alternate clock for testing
|
||||
@ -179,7 +179,7 @@ public final class Year
|
||||
/**
|
||||
* Obtains the current year from the system clock in the specified time-zone.
|
||||
* <p>
|
||||
* This will query the {@link Clock#system(java.time.ZoneId) system clock} to obtain the current year.
|
||||
* This will query the {@link Clock#system(ZoneId) system clock} to obtain the current year.
|
||||
* Specifying the time-zone avoids dependence on the default time-zone.
|
||||
* <p>
|
||||
* Using this method will prevent the ability to use an alternate clock for testing
|
||||
@ -240,7 +240,7 @@ public final class Year
|
||||
* chronology, or can be converted to a {@code LocalDate}.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code Year::from}.
|
||||
* allowing it to be used as a query via method reference, {@code Year::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the year, not null
|
||||
@ -375,7 +375,7 @@ public final class Year
|
||||
/**
|
||||
* Checks if the specified unit is supported.
|
||||
* <p>
|
||||
* This checks if the specified unit can be added to, or subtracted from, this date-time.
|
||||
* This checks if the specified unit can be added to, or subtracted from, this year.
|
||||
* If false, then calling the {@link #plus(long, TemporalUnit)} and
|
||||
* {@link #minus(long, TemporalUnit) minus} methods will throw an exception.
|
||||
* <p>
|
||||
@ -441,7 +441,7 @@ public final class Year
|
||||
/**
|
||||
* Gets the value of the specified field from this year as an {@code int}.
|
||||
* <p>
|
||||
* This queries this year for the value for the specified field.
|
||||
* This queries this year for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -472,7 +472,7 @@ public final class Year
|
||||
/**
|
||||
* Gets the value of the specified field from this year as a {@code long}.
|
||||
* <p>
|
||||
* This queries this year for the value for the specified field.
|
||||
* This queries this year for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -720,13 +720,13 @@ public final class Year
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this year with the specified number of years added.
|
||||
* Returns a copy of this {@code Year} with the specified number of years added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
* @param yearsToAdd the years to add, may be negative
|
||||
* @return a {@code Year} based on this year with the period added, not null
|
||||
* @throws DateTimeException if the result exceeds the supported year range
|
||||
* @return a {@code Year} based on this year with the years added, not null
|
||||
* @throws DateTimeException if the result exceeds the supported range
|
||||
*/
|
||||
public Year plusYears(long yearsToAdd) {
|
||||
if (yearsToAdd == 0) {
|
||||
@ -786,13 +786,13 @@ public final class Year
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this year with the specified number of years subtracted.
|
||||
* Returns a copy of this {@code Year} with the specified number of years subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
* @param yearsToSubtract the years to subtract, may be negative
|
||||
* @return a {@code Year} based on this year with the period subtracted, not null
|
||||
* @throws DateTimeException if the result exceeds the supported year range
|
||||
* @return a {@code Year} based on this year with the year subtracted, not null
|
||||
* @throws DateTimeException if the result exceeds the supported range
|
||||
*/
|
||||
public Year minusYears(long yearsToSubtract) {
|
||||
return (yearsToSubtract == Long.MIN_VALUE ? plusYears(Long.MAX_VALUE).plusYears(1) : plusYears(-yearsToSubtract));
|
||||
@ -871,12 +871,12 @@ public final class Year
|
||||
* The result will be negative if the end is before the start.
|
||||
* The {@code Temporal} passed to this method is converted to a
|
||||
* {@code Year} using {@link #from(TemporalAccessor)}.
|
||||
* For example, the period in decades between two year can be calculated
|
||||
* For example, the amount in decades between two year can be calculated
|
||||
* using {@code startYear.until(endYear, DECADES)}.
|
||||
* <p>
|
||||
* The calculation returns a whole number, representing the number of
|
||||
* complete units between the two years.
|
||||
* For example, the period in decades between 2012 and 2031
|
||||
* For example, the amount in decades between 2012 and 2031
|
||||
* will only be one decade as it is one year short of two decades.
|
||||
* <p>
|
||||
* There are two equivalent ways of using this method.
|
||||
@ -948,7 +948,7 @@ public final class Year
|
||||
* <p>
|
||||
* The day-of-year value 366 is only valid in a leap year.
|
||||
*
|
||||
* @param dayOfYear the day-of-year to use, not null
|
||||
* @param dayOfYear the day-of-year to use, from 1 to 365-366
|
||||
* @return the local date formed from this year and the specified date of year, not null
|
||||
* @throws DateTimeException if the day of year is zero or less, 366 or greater or equal
|
||||
* to 366 and this is not a leap year
|
||||
@ -1025,7 +1025,7 @@ public final class Year
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this year after the specified year.
|
||||
* Checks if this year is after the specified year.
|
||||
*
|
||||
* @param other the other year to compare to, not null
|
||||
* @return true if this is after the specified year
|
||||
@ -1035,7 +1035,7 @@ public final class Year
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this year before the specified year.
|
||||
* Checks if this year is before the specified year.
|
||||
*
|
||||
* @param other the other year to compare to, not null
|
||||
* @return true if this point is before the specified year
|
||||
|
||||
@ -157,9 +157,8 @@ public final class YearMonth
|
||||
/**
|
||||
* Obtains the current year-month from the system clock in the default time-zone.
|
||||
* <p>
|
||||
* This will query the {@link java.time.Clock#systemDefaultZone() system clock} in the default
|
||||
* This will query the {@link Clock#systemDefaultZone() system clock} in the default
|
||||
* time-zone to obtain the current year-month.
|
||||
* The zone and offset will be set based on the time-zone in the clock.
|
||||
* <p>
|
||||
* Using this method will prevent the ability to use an alternate clock for testing
|
||||
* because the clock is hard-coded.
|
||||
@ -173,7 +172,7 @@ public final class YearMonth
|
||||
/**
|
||||
* Obtains the current year-month from the system clock in the specified time-zone.
|
||||
* <p>
|
||||
* This will query the {@link Clock#system(java.time.ZoneId) system clock} to obtain the current year-month.
|
||||
* This will query the {@link Clock#system(ZoneId) system clock} to obtain the current year-month.
|
||||
* Specifying the time-zone avoids dependence on the default time-zone.
|
||||
* <p>
|
||||
* Using this method will prevent the ability to use an alternate clock for testing
|
||||
@ -243,7 +242,7 @@ public final class YearMonth
|
||||
* chronology, or can be converted to a {@code LocalDate}.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code YearMonth::from}.
|
||||
* allowing it to be used as a query via method reference, {@code YearMonth::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the year-month, not null
|
||||
@ -363,7 +362,7 @@ public final class YearMonth
|
||||
/**
|
||||
* Checks if the specified unit is supported.
|
||||
* <p>
|
||||
* This checks if the specified unit can be added to, or subtracted from, this date-time.
|
||||
* This checks if the specified unit can be added to, or subtracted from, this year-month.
|
||||
* If false, then calling the {@link #plus(long, TemporalUnit)} and
|
||||
* {@link #minus(long, TemporalUnit) minus} methods will throw an exception.
|
||||
* <p>
|
||||
@ -430,7 +429,7 @@ public final class YearMonth
|
||||
/**
|
||||
* Gets the value of the specified field from this year-month as an {@code int}.
|
||||
* <p>
|
||||
* This queries this year-month for the value for the specified field.
|
||||
* This queries this year-month for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -462,7 +461,7 @@ public final class YearMonth
|
||||
/**
|
||||
* Gets the value of the specified field from this year-month as a {@code long}.
|
||||
* <p>
|
||||
* This queries this year-month for the value for the specified field.
|
||||
* This queries this year-month for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -819,7 +818,7 @@ public final class YearMonth
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this year-month with the specified period in years added.
|
||||
* Returns a copy of this {@code YearMonth} with the specified number of years added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -836,7 +835,7 @@ public final class YearMonth
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this year-month with the specified period in months added.
|
||||
* Returns a copy of this {@code YearMonth} with the specified number of months added.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -906,7 +905,7 @@ public final class YearMonth
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this year-month with the specified period in years subtracted.
|
||||
* Returns a copy of this {@code YearMonth} with the specified number of years subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -919,7 +918,7 @@ public final class YearMonth
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this year-month with the specified period in months subtracted.
|
||||
* Returns a copy of this {@code YearMonth} with the specified number of months subtracted.
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
@ -1004,12 +1003,12 @@ public final class YearMonth
|
||||
* The result will be negative if the end is before the start.
|
||||
* The {@code Temporal} passed to this method is converted to a
|
||||
* {@code YearMonth} using {@link #from(TemporalAccessor)}.
|
||||
* For example, the period in years between two year-months can be calculated
|
||||
* For example, the amount in years between two year-months can be calculated
|
||||
* using {@code startYearMonth.until(endYearMonth, YEARS)}.
|
||||
* <p>
|
||||
* The calculation returns a whole number, representing the number of
|
||||
* complete units between the two year-months.
|
||||
* For example, the period in decades between 2012-06 and 2032-05
|
||||
* For example, the amount in decades between 2012-06 and 2032-05
|
||||
* will only be one decade as it is one month short of two decades.
|
||||
* <p>
|
||||
* There are two equivalent ways of using this method.
|
||||
@ -1134,7 +1133,7 @@ public final class YearMonth
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this year-month after the specified year-month.
|
||||
* Checks if this year-month is after the specified year-month.
|
||||
*
|
||||
* @param other the other year-month to compare to, not null
|
||||
* @return true if this is after the specified year-month
|
||||
@ -1144,7 +1143,7 @@ public final class YearMonth
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this year-month before the specified year-month.
|
||||
* Checks if this year-month is before the specified year-month.
|
||||
*
|
||||
* @param other the other year-month to compare to, not null
|
||||
* @return true if this point is before the specified year-month
|
||||
|
||||
@ -453,7 +453,7 @@ public abstract class ZoneId implements Serializable {
|
||||
* zones over offset-based zones using {@link TemporalQueries#zone()}.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code ZoneId::from}.
|
||||
* allowing it to be used as a query via method reference, {@code ZoneId::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the zone ID, not null
|
||||
|
||||
@ -89,7 +89,7 @@ import java.util.concurrent.ConcurrentMap;
|
||||
/**
|
||||
* A time-zone offset from Greenwich/UTC, such as {@code +02:00}.
|
||||
* <p>
|
||||
* A time-zone offset is the period of time that a time-zone differs from Greenwich/UTC.
|
||||
* A time-zone offset is the amount of time that a time-zone differs from Greenwich/UTC.
|
||||
* This is usually a fixed number of hours and minutes.
|
||||
* <p>
|
||||
* Different parts of the world have different time-zone offsets.
|
||||
@ -334,7 +334,7 @@ public final class ZoneOffset
|
||||
* on extracting the {@link ChronoField#OFFSET_SECONDS OFFSET_SECONDS} field.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code ZoneOffset::from}.
|
||||
* allowing it to be used as a query via method reference, {@code ZoneOffset::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the zone-offset, not null
|
||||
@ -564,7 +564,7 @@ public final class ZoneOffset
|
||||
/**
|
||||
* Gets the value of the specified field from this offset as an {@code int}.
|
||||
* <p>
|
||||
* This queries this offset for the value for the specified field.
|
||||
* This queries this offset for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -599,7 +599,7 @@ public final class ZoneOffset
|
||||
/**
|
||||
* Gets the value of the specified field from this offset as a {@code long}.
|
||||
* <p>
|
||||
* This queries this offset for the value for the specified field.
|
||||
* This queries this offset for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
|
||||
@ -418,7 +418,7 @@ public final class ZonedDateTime
|
||||
* <p>
|
||||
* Converting an instant to a zoned date-time is simple as there is only one valid
|
||||
* offset for each instant. If the valid offset is different to the offset specified,
|
||||
* the the date-time and offset of the zoned date-time will differ from those specified.
|
||||
* then the date-time and offset of the zoned date-time will differ from those specified.
|
||||
* <p>
|
||||
* If the {@code ZoneId} to be used is a {@code ZoneOffset}, this method is equivalent
|
||||
* to {@link #of(LocalDateTime, ZoneId)}.
|
||||
@ -469,6 +469,7 @@ public final class ZonedDateTime
|
||||
* @param offset the zone offset, not null
|
||||
* @param zone the time-zone, not null
|
||||
* @return the zoned date-time, not null
|
||||
* @throws DateTimeException if the combination of arguments is invalid
|
||||
*/
|
||||
public static ZonedDateTime ofStrict(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone) {
|
||||
Objects.requireNonNull(localDateTime, "localDateTime");
|
||||
@ -538,7 +539,7 @@ public final class ZonedDateTime
|
||||
* those fields that are equivalent to the relevant objects.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code ZonedDateTime::from}.
|
||||
* allowing it to be used as a query via method reference, {@code ZonedDateTime::from}.
|
||||
*
|
||||
* @param temporal the temporal object to convert, not null
|
||||
* @return the zoned date-time, not null
|
||||
@ -782,7 +783,7 @@ public final class ZonedDateTime
|
||||
/**
|
||||
* Gets the value of the specified field from this date-time as an {@code int}.
|
||||
* <p>
|
||||
* This queries this date-time for the value for the specified field.
|
||||
* This queries this date-time for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -791,7 +792,7 @@ public final class ZonedDateTime
|
||||
* The {@link #isSupported(TemporalField) supported fields} will return valid
|
||||
* values based on this date-time, except {@code NANO_OF_DAY}, {@code MICRO_OF_DAY},
|
||||
* {@code EPOCH_DAY}, {@code PROLEPTIC_MONTH} and {@code INSTANT_SECONDS} which are too
|
||||
* large to fit in an {@code int} and throw a {@code DateTimeException}.
|
||||
* large to fit in an {@code int} and throw a {@code UnsupportedTemporalTypeException}.
|
||||
* All other {@code ChronoField} instances will throw an {@code UnsupportedTemporalTypeException}.
|
||||
* <p>
|
||||
* If the field is not a {@code ChronoField}, then the result of this method
|
||||
@ -824,7 +825,7 @@ public final class ZonedDateTime
|
||||
/**
|
||||
* Gets the value of the specified field from this date-time as a {@code long}.
|
||||
* <p>
|
||||
* This queries this date-time for the value for the specified field.
|
||||
* This queries this date-time for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
@ -1182,7 +1183,8 @@ public final class ZonedDateTime
|
||||
* <p>
|
||||
* A simple adjuster might simply set the one of the fields, such as the year field.
|
||||
* A more complex adjuster might set the date to the last day of the month.
|
||||
* A selection of common adjustments is provided in {@link TemporalAdjuster}.
|
||||
* A selection of common adjustments is provided in
|
||||
* {@link java.time.temporal.TemporalAdjusters TemporalAdjusters}.
|
||||
* These include finding the "last day of the month" and "next Wednesday".
|
||||
* Key date-time classes also implement the {@code TemporalAdjuster} interface,
|
||||
* such as {@link Month} and {@link java.time.MonthDay MonthDay}.
|
||||
@ -1192,7 +1194,7 @@ public final class ZonedDateTime
|
||||
* For example this code returns a date on the last day of July:
|
||||
* <pre>
|
||||
* import static java.time.Month.*;
|
||||
* import static java.time.temporal.Adjusters.*;
|
||||
* import static java.time.temporal.TemporalAdjusters.*;
|
||||
*
|
||||
* result = zonedDateTime.with(JULY).with(lastDayOfMonth());
|
||||
* </pre>
|
||||
@ -1313,7 +1315,7 @@ public final class ZonedDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the year value altered.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the year altered.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#withYear(int) changing the year} of the local date-time.
|
||||
@ -1335,7 +1337,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the month-of-year value altered.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the month-of-year altered.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#withMonth(int) changing the month} of the local date-time.
|
||||
@ -1357,7 +1359,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the day-of-month value altered.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the day-of-month altered.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#withDayOfMonth(int) changing the day-of-month} of the local date-time.
|
||||
@ -1404,7 +1406,7 @@ public final class ZonedDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the hour-of-day value altered.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the hour-of-day altered.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@linkplain LocalDateTime#withHour(int) changing the time} of the local date-time.
|
||||
@ -1426,7 +1428,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the minute-of-hour value altered.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the minute-of-hour altered.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@linkplain LocalDateTime#withMinute(int) changing the time} of the local date-time.
|
||||
@ -1448,7 +1450,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the second-of-minute value altered.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the second-of-minute altered.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@linkplain LocalDateTime#withSecond(int) changing the time} of the local date-time.
|
||||
@ -1470,7 +1472,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the nano-of-second value altered.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the nano-of-second altered.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@linkplain LocalDateTime#withNano(int) changing the time} of the local date-time.
|
||||
@ -1506,7 +1508,7 @@ public final class ZonedDateTime
|
||||
* {@link ChronoUnit#DAYS DAYS}. Other units throw an exception.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#truncatedTo(java.time.temporal.TemporalUnit) truncating}
|
||||
* {@link LocalDateTime#truncatedTo(TemporalUnit) truncating}
|
||||
* the underlying local date-time. This is then converted back to a
|
||||
* {@code ZonedDateTime}, using the zone ID to obtain the offset.
|
||||
* <p>
|
||||
@ -1607,7 +1609,7 @@ public final class ZonedDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in years added.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of years added.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#plusYears(long) adding years} to the local date-time.
|
||||
@ -1629,7 +1631,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in months added.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of months added.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#plusMonths(long) adding months} to the local date-time.
|
||||
@ -1651,7 +1653,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in weeks added.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of weeks added.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#plusWeeks(long) adding weeks} to the local date-time.
|
||||
@ -1673,7 +1675,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in days added.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of days added.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#plusDays(long) adding days} to the local date-time.
|
||||
@ -1696,7 +1698,7 @@ public final class ZonedDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in hours added.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of hours added.
|
||||
* <p>
|
||||
* This operates on the instant time-line, such that adding one hour will
|
||||
* always be a duration of one hour later.
|
||||
@ -1724,7 +1726,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in minutes added.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of minutes added.
|
||||
* <p>
|
||||
* This operates on the instant time-line, such that adding one minute will
|
||||
* always be a duration of one minute later.
|
||||
@ -1742,7 +1744,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in seconds added.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of seconds added.
|
||||
* <p>
|
||||
* This operates on the instant time-line, such that adding one second will
|
||||
* always be a duration of one second later.
|
||||
@ -1760,7 +1762,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in nanoseconds added.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of nanoseconds added.
|
||||
* <p>
|
||||
* This operates on the instant time-line, such that adding one nano will
|
||||
* always be a duration of one nano later.
|
||||
@ -1848,7 +1850,7 @@ public final class ZonedDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in years subtracted.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of years subtracted.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#minusYears(long) subtracting years} to the local date-time.
|
||||
@ -1870,7 +1872,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in months subtracted.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of months subtracted.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#minusMonths(long) subtracting months} to the local date-time.
|
||||
@ -1892,7 +1894,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in weeks subtracted.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of weeks subtracted.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#minusWeeks(long) subtracting weeks} to the local date-time.
|
||||
@ -1914,7 +1916,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in days subtracted.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of days subtracted.
|
||||
* <p>
|
||||
* This operates on the local time-line,
|
||||
* {@link LocalDateTime#minusDays(long) subtracting days} to the local date-time.
|
||||
@ -1937,7 +1939,7 @@ public final class ZonedDateTime
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in hours subtracted.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of hours subtracted.
|
||||
* <p>
|
||||
* This operates on the instant time-line, such that subtracting one hour will
|
||||
* always be a duration of one hour earlier.
|
||||
@ -1965,7 +1967,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in minutes subtracted.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of minutes subtracted.
|
||||
* <p>
|
||||
* This operates on the instant time-line, such that subtracting one minute will
|
||||
* always be a duration of one minute earlier.
|
||||
@ -1983,7 +1985,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in seconds subtracted.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of seconds subtracted.
|
||||
* <p>
|
||||
* This operates on the instant time-line, such that subtracting one second will
|
||||
* always be a duration of one second earlier.
|
||||
@ -2001,7 +2003,7 @@ public final class ZonedDateTime
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified period in nanoseconds subtracted.
|
||||
* Returns a copy of this {@code ZonedDateTime} with the specified number of nanoseconds subtracted.
|
||||
* <p>
|
||||
* This operates on the instant time-line, such that subtracting one nano will
|
||||
* always be a duration of one nano earlier.
|
||||
@ -2028,7 +2030,7 @@ public final class ZonedDateTime
|
||||
* what the result of this method will be.
|
||||
* <p>
|
||||
* The result of this method is obtained by invoking the
|
||||
* {@link java.time.temporal.TemporalQuery#queryFrom(TemporalAccessor)} method on the
|
||||
* {@link TemporalQuery#queryFrom(TemporalAccessor)} method on the
|
||||
* specified query passing {@code this} as the argument.
|
||||
*
|
||||
* @param <R> the type of the result
|
||||
@ -2049,7 +2051,7 @@ public final class ZonedDateTime
|
||||
* objects in terms of a single {@code TemporalUnit}.
|
||||
* The start and end points are {@code this} and the specified date-time.
|
||||
* The result will be negative if the end is before the start.
|
||||
* For example, the period in days between two date-times can be calculated
|
||||
* For example, the amount in days between two date-times can be calculated
|
||||
* using {@code startDateTime.until(endDateTime, DAYS)}.
|
||||
* <p>
|
||||
* The {@code Temporal} passed to this method is converted to a
|
||||
@ -2059,7 +2061,7 @@ public final class ZonedDateTime
|
||||
* <p>
|
||||
* The calculation returns a whole number, representing the number of
|
||||
* complete units between the two date-times.
|
||||
* For example, the period in months between 2012-06-15T00:00Z and 2012-08-14T23:59Z
|
||||
* For example, the amount in months between 2012-06-15T00:00Z and 2012-08-14T23:59Z
|
||||
* will only be one month as it is one minute short of two months.
|
||||
* <p>
|
||||
* There are two equivalent ways of using this method.
|
||||
|
||||
@ -249,8 +249,8 @@ public interface ChronoLocalDate
|
||||
* This allows dates in different calendar systems to be compared based
|
||||
* on the position of the date on the local time-line.
|
||||
* The underlying comparison is equivalent to comparing the epoch-day.
|
||||
* @return a comparator that compares in time-line order ignoring the chronology
|
||||
*
|
||||
* @return a comparator that compares in time-line order ignoring the chronology
|
||||
* @see #isAfter
|
||||
* @see #isBefore
|
||||
* @see #isEqual
|
||||
|
||||
@ -227,7 +227,7 @@ abstract class ChronoLocalDateImpl<D extends ChronoLocalDate>
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this date with the specified period in years added.
|
||||
* Returns a copy of this date with the specified number of years added.
|
||||
* <p>
|
||||
* This adds the specified period in years to the date.
|
||||
* In some cases, adding years can cause the resulting date to become invalid.
|
||||
@ -243,7 +243,7 @@ abstract class ChronoLocalDateImpl<D extends ChronoLocalDate>
|
||||
abstract D plusYears(long yearsToAdd);
|
||||
|
||||
/**
|
||||
* Returns a copy of this date with the specified period in months added.
|
||||
* Returns a copy of this date with the specified number of months added.
|
||||
* <p>
|
||||
* This adds the specified period in months to the date.
|
||||
* In some cases, adding months can cause the resulting date to become invalid.
|
||||
@ -259,7 +259,7 @@ abstract class ChronoLocalDateImpl<D extends ChronoLocalDate>
|
||||
abstract D plusMonths(long monthsToAdd);
|
||||
|
||||
/**
|
||||
* Returns a copy of this date with the specified period in weeks added.
|
||||
* Returns a copy of this date with the specified number of weeks added.
|
||||
* <p>
|
||||
* This adds the specified period in weeks to the date.
|
||||
* In some cases, adding weeks can cause the resulting date to become invalid.
|
||||
@ -292,7 +292,7 @@ abstract class ChronoLocalDateImpl<D extends ChronoLocalDate>
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Returns a copy of this date with the specified period in years subtracted.
|
||||
* Returns a copy of this date with the specified number of years subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified period in years to the date.
|
||||
* In some cases, subtracting years can cause the resulting date to become invalid.
|
||||
@ -313,7 +313,7 @@ abstract class ChronoLocalDateImpl<D extends ChronoLocalDate>
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this date with the specified period in months subtracted.
|
||||
* Returns a copy of this date with the specified number of months subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified period in months to the date.
|
||||
* In some cases, subtracting months can cause the resulting date to become invalid.
|
||||
@ -334,7 +334,7 @@ abstract class ChronoLocalDateImpl<D extends ChronoLocalDate>
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of this date with the specified period in weeks subtracted.
|
||||
* Returns a copy of this date with the specified number of weeks subtracted.
|
||||
* <p>
|
||||
* This subtracts the specified period in weeks to the date.
|
||||
* In some cases, subtracting weeks can cause the resulting date to become invalid.
|
||||
|
||||
@ -131,7 +131,6 @@ public interface ChronoLocalDateTime<D extends ChronoLocalDate>
|
||||
* The underlying comparison is equivalent to comparing the epoch-day and nano-of-day.
|
||||
*
|
||||
* @return a comparator that compares in time-line order ignoring the chronology
|
||||
*
|
||||
* @see #isAfter
|
||||
* @see #isBefore
|
||||
* @see #isEqual
|
||||
@ -323,7 +322,7 @@ public interface ChronoLocalDateTime<D extends ChronoLocalDate>
|
||||
* what the result of this method will be.
|
||||
* <p>
|
||||
* The result of this method is obtained by invoking the
|
||||
* {@link java.time.temporal.TemporalQuery#queryFrom(TemporalAccessor)} method on the
|
||||
* {@link TemporalQuery#queryFrom(TemporalAccessor)} method on the
|
||||
* specified query passing {@code this} as the argument.
|
||||
*
|
||||
* @param <R> the type of the result
|
||||
|
||||
@ -132,7 +132,6 @@ public interface ChronoZonedDateTime<D extends ChronoLocalDate>
|
||||
* The underlying comparison is equivalent to comparing the epoch-second and nano-of-second.
|
||||
*
|
||||
* @return a comparator that compares in time-line order ignoring the chronology
|
||||
*
|
||||
* @see #isAfter
|
||||
* @see #isBefore
|
||||
* @see #isEqual
|
||||
@ -292,7 +291,7 @@ public interface ChronoZonedDateTime<D extends ChronoLocalDate>
|
||||
* <p>
|
||||
* This instance is immutable and unaffected by this method call.
|
||||
*
|
||||
* @return a {@code ZoneChronoDateTime} based on this date-time with the earlier offset, not null
|
||||
* @return a {@code ChronoZonedDateTime} based on this date-time with the earlier offset, not null
|
||||
* @throws DateTimeException if no rules can be found for the zone
|
||||
* @throws DateTimeException if no rules are valid for this date-time
|
||||
*/
|
||||
@ -319,7 +318,7 @@ public interface ChronoZonedDateTime<D extends ChronoLocalDate>
|
||||
ChronoZonedDateTime<D> withLaterOffsetAtOverlap();
|
||||
|
||||
/**
|
||||
* Returns a copy of this ZonedDateTime with a different time-zone,
|
||||
* Returns a copy of this date-time with a different time-zone,
|
||||
* retaining the local date-time if possible.
|
||||
* <p>
|
||||
* This method changes the time-zone and retains the local date-time.
|
||||
@ -470,7 +469,7 @@ public interface ChronoZonedDateTime<D extends ChronoLocalDate>
|
||||
* what the result of this method will be.
|
||||
* <p>
|
||||
* The result of this method is obtained by invoking the
|
||||
* {@link java.time.temporal.TemporalQuery#queryFrom(TemporalAccessor)} method on the
|
||||
* {@link TemporalQuery#queryFrom(TemporalAccessor)} method on the
|
||||
* specified query passing {@code this} as the argument.
|
||||
*
|
||||
* @param <R> the type of the result
|
||||
|
||||
@ -132,8 +132,9 @@ import java.util.Set;
|
||||
* The set of available chronologies can be extended by applications.
|
||||
* Adding a new calendar system requires the writing of an implementation of
|
||||
* {@code Chronology}, {@code ChronoLocalDate} and {@code Era}.
|
||||
* The majority of the logic specific to the calendar system will be in
|
||||
* {@code ChronoLocalDate}. The {@code Chronology} subclass acts as a factory.
|
||||
* The majority of the logic specific to the calendar system will be in the
|
||||
* {@code ChronoLocalDate} implementation.
|
||||
* The {@code Chronology} implementation acts as a factory.
|
||||
* <p>
|
||||
* To permit the discovery of additional chronologies, the {@link java.util.ServiceLoader ServiceLoader}
|
||||
* is used. A file must be added to the {@code META-INF/services} directory with the
|
||||
@ -167,7 +168,7 @@ public interface Chronology extends Comparable<Chronology> {
|
||||
* If the specified temporal object does not have a chronology, {@link IsoChronology} is returned.
|
||||
* <p>
|
||||
* This method matches the signature of the functional interface {@link TemporalQuery}
|
||||
* allowing it to be used in queries via method reference, {@code Chronology::from}.
|
||||
* allowing it to be used as a query via method reference, {@code Chronology::from}.
|
||||
*
|
||||
* @param temporal the temporal to convert, not null
|
||||
* @return the chronology, not null
|
||||
@ -413,7 +414,7 @@ public interface Chronology extends Comparable<Chronology> {
|
||||
* The alternate clock may be introduced using {@link Clock dependency injection}.
|
||||
*
|
||||
* @implSpec
|
||||
* The default implementation invokes {@link #date(TemporalAccessor)} )}.
|
||||
* The default implementation invokes {@link #date(TemporalAccessor)}.
|
||||
*
|
||||
* @param clock the clock to use, not null
|
||||
* @return the current local date, not null
|
||||
@ -622,7 +623,7 @@ public interface Chronology extends Comparable<Chronology> {
|
||||
* The parameters control the style of the returned text and the locale.
|
||||
*
|
||||
* @implSpec
|
||||
* The default implementation behaves as the the formatter was used to
|
||||
* The default implementation behaves as though the formatter was used to
|
||||
* format the chronology textual name.
|
||||
*
|
||||
* @param style the style of the text required, not null
|
||||
|
||||
@ -182,7 +182,7 @@ public interface Era extends TemporalAccessor, TemporalAdjuster {
|
||||
/**
|
||||
* Gets the value of the specified field from this era as an {@code int}.
|
||||
* <p>
|
||||
* This queries this era for the value for the specified field.
|
||||
* This queries this era for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
@ -215,7 +215,7 @@ public interface Era extends TemporalAccessor, TemporalAdjuster {
|
||||
/**
|
||||
* Gets the value of the specified field from this era as a {@code long}.
|
||||
* <p>
|
||||
* This queries this era for the value for the specified field.
|
||||
* This queries this era for the value of the specified field.
|
||||
* If it is not possible to return the value, because the field is not supported
|
||||
* or for some other reason, an exception is thrown.
|
||||
* <p>
|
||||
|
||||
@ -394,7 +394,7 @@ public final class HijrahChronology extends AbstractChronology implements Serial
|
||||
* Gets the ID of the chronology.
|
||||
* <p>
|
||||
* The ID uniquely identifies the {@code Chronology}. It can be used to
|
||||
* lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
*
|
||||
* @return the chronology ID, non-null
|
||||
* @see #getCalendarType()
|
||||
@ -409,7 +409,7 @@ public final class HijrahChronology extends AbstractChronology implements Serial
|
||||
* <p>
|
||||
* The calendar type is an identifier defined by the
|
||||
* <em>Unicode Locale Data Markup Language (LDML)</em> specification.
|
||||
* It can be used to lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
*
|
||||
* @return the calendar system type; non-null if the calendar has
|
||||
* a standard type, otherwise null
|
||||
|
||||
@ -143,7 +143,7 @@ public final class IsoChronology extends AbstractChronology implements Serializa
|
||||
* Gets the ID of the chronology - 'ISO'.
|
||||
* <p>
|
||||
* The ID uniquely identifies the {@code Chronology}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
*
|
||||
* @return the chronology ID - 'ISO'
|
||||
* @see #getCalendarType()
|
||||
@ -158,7 +158,7 @@ public final class IsoChronology extends AbstractChronology implements Serializa
|
||||
* <p>
|
||||
* The calendar type is an identifier defined by the
|
||||
* <em>Unicode Locale Data Markup Language (LDML)</em> specification.
|
||||
* It can be used to lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
* It can also be used as part of a locale, accessible via
|
||||
* {@link Locale#getUnicodeLocaleType(String)} with the key 'ca'.
|
||||
*
|
||||
|
||||
@ -150,7 +150,7 @@ public final class JapaneseChronology extends AbstractChronology implements Seri
|
||||
* Gets the ID of the chronology - 'Japanese'.
|
||||
* <p>
|
||||
* The ID uniquely identifies the {@code Chronology}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
*
|
||||
* @return the chronology ID - 'Japanese'
|
||||
* @see #getCalendarType()
|
||||
@ -165,7 +165,7 @@ public final class JapaneseChronology extends AbstractChronology implements Seri
|
||||
* <p>
|
||||
* The calendar type is an identifier defined by the
|
||||
* <em>Unicode Locale Data Markup Language (LDML)</em> specification.
|
||||
* It can be used to lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
* It can also be used as part of a locale, accessible via
|
||||
* {@link Locale#getUnicodeLocaleType(String)} with the key 'ca'.
|
||||
*
|
||||
|
||||
@ -132,7 +132,7 @@ public final class MinguoChronology extends AbstractChronology implements Serial
|
||||
* Gets the ID of the chronology - 'Minguo'.
|
||||
* <p>
|
||||
* The ID uniquely identifies the {@code Chronology}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
*
|
||||
* @return the chronology ID - 'Minguo'
|
||||
* @see #getCalendarType()
|
||||
@ -147,7 +147,7 @@ public final class MinguoChronology extends AbstractChronology implements Serial
|
||||
* <p>
|
||||
* The calendar type is an identifier defined by the
|
||||
* <em>Unicode Locale Data Markup Language (LDML)</em> specification.
|
||||
* It can be used to lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
* It can also be used as part of a locale, accessible via
|
||||
* {@link Locale#getUnicodeLocaleType(String)} with the key 'ca'.
|
||||
*
|
||||
|
||||
@ -168,7 +168,7 @@ public final class ThaiBuddhistChronology extends AbstractChronology implements
|
||||
* Gets the ID of the chronology - 'ThaiBuddhist'.
|
||||
* <p>
|
||||
* The ID uniquely identifies the {@code Chronology}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
*
|
||||
* @return the chronology ID - 'ThaiBuddhist'
|
||||
* @see #getCalendarType()
|
||||
@ -183,7 +183,7 @@ public final class ThaiBuddhistChronology extends AbstractChronology implements
|
||||
* <p>
|
||||
* The calendar type is an identifier defined by the
|
||||
* <em>Unicode Locale Data Markup Language (LDML)</em> specification.
|
||||
* It can be used to lookup the {@code Chronology} using {@link #of(String)}.
|
||||
* It can be used to lookup the {@code Chronology} using {@link Chronology#of(String)}.
|
||||
* It can also be used as part of a locale, accessible via
|
||||
* {@link Locale#getUnicodeLocaleType(String)} with the key 'ca'.
|
||||
*
|
||||
|
||||
@ -117,7 +117,7 @@ import java.util.Set;
|
||||
* {@code parse(CharSequence text, DateTimeFormatter formatter)}.
|
||||
* <p>For example:
|
||||
* <blockquote><pre>
|
||||
* String text = date.toString(formatter);
|
||||
* String text = date.format(formatter);
|
||||
* LocalDate date = LocalDate.parse(text, formatter);
|
||||
* </pre></blockquote>
|
||||
* <p>
|
||||
@ -266,7 +266,7 @@ import java.util.Set;
|
||||
* For example:
|
||||
* <blockquote><pre>
|
||||
* DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd");
|
||||
* String text = date.toString(formatter);
|
||||
* String text = date.format(formatter);
|
||||
* LocalDate date = LocalDate.parse(text, formatter);
|
||||
* </pre></blockquote>
|
||||
* <p>
|
||||
@ -1976,7 +1976,7 @@ public final class DateTimeFormatter {
|
||||
* Errors are returned using the error index field of the {@code ParsePosition}
|
||||
* instead of {@code DateTimeParseException}.
|
||||
* The returned error index will be set to an index indicative of the error.
|
||||
* Callers must check for errors before using the context.
|
||||
* Callers must check for errors before using the result.
|
||||
* <p>
|
||||
* If the formatter parses the same field more than once with different values,
|
||||
* the result will be an error.
|
||||
|
||||
@ -137,7 +137,6 @@ import sun.util.locale.provider.TimeZoneNameUtility;
|
||||
* <li>ChronologyText - the name of the chronology</li>
|
||||
* <li>Literal - a text literal</li>
|
||||
* <li>Nested and Optional - formats can be nested or made optional</li>
|
||||
* <li>Other - the printer and parser interfaces can be used to add user supplied formatting</li>
|
||||
* </ul>
|
||||
* In addition, any of the elements may be decorated by padding, either with spaces or any other character.
|
||||
* <p>
|
||||
@ -194,8 +193,8 @@ public final class DateTimeFormatterBuilder {
|
||||
* The locale and chronology are used to lookup the locale specific format
|
||||
* for the requested dateStyle and/or timeStyle.
|
||||
*
|
||||
* @param dateStyle the FormatStyle for the date
|
||||
* @param timeStyle the FormatStyle for the time
|
||||
* @param dateStyle the FormatStyle for the date, null for time-only pattern
|
||||
* @param timeStyle the FormatStyle for the time, null for date-only pattern
|
||||
* @param chrono the Chronology, non-null
|
||||
* @param locale the locale, non-null
|
||||
* @return the locale and Chronology specific formatting pattern
|
||||
@ -747,9 +746,9 @@ public final class DateTimeFormatterBuilder {
|
||||
* defines the connection between each value and the text:
|
||||
* <pre>
|
||||
* Map<Long, String> map = new HashMap<>();
|
||||
* map.put(1, "JNY");
|
||||
* map.put(2, "FBY");
|
||||
* map.put(3, "MCH");
|
||||
* map.put(1L, "JNY");
|
||||
* map.put(2L, "FBY");
|
||||
* map.put(3L, "MCH");
|
||||
* ...
|
||||
* builder.appendText(MONTH_OF_YEAR, map);
|
||||
* </pre>
|
||||
@ -841,7 +840,7 @@ public final class DateTimeFormatterBuilder {
|
||||
* <p>
|
||||
* The {@linkplain ResolverStyle resolver style} has no effect on instant parsing.
|
||||
* The end-of-day time of '24:00' is handled as midnight at the start of the following day.
|
||||
* The leap-second time of '23:59:59' is handled to some degree, see
|
||||
* The leap-second time of '23:59:60' is handled to some degree, see
|
||||
* {@link DateTimeFormatter#parsedLeapSecond()} for full details.
|
||||
* <p>
|
||||
* An alternative to this method is to format/parse the instant as a single
|
||||
@ -864,7 +863,7 @@ public final class DateTimeFormatterBuilder {
|
||||
* Appends the zone offset, such as '+01:00', to the formatter.
|
||||
* <p>
|
||||
* This appends an instruction to format/parse the offset ID to the builder.
|
||||
* This is equivalent to calling {@code appendOffset("HH:MM:ss", "Z")}.
|
||||
* This is equivalent to calling {@code appendOffset("+HH:MM:ss", "Z")}.
|
||||
*
|
||||
* @return this, for chaining, not null
|
||||
*/
|
||||
@ -1049,7 +1048,7 @@ public final class DateTimeFormatterBuilder {
|
||||
* "GMT+01:30" -- ZoneOffset.of("+01:30")
|
||||
* </pre>
|
||||
* <p>
|
||||
* Note that this method is is identical to {@code appendZoneId()} except
|
||||
* Note that this method is identical to {@code appendZoneId()} except
|
||||
* in the mechanism used to obtain the zone.
|
||||
* Note also that parsing accepts offsets, whereas formatting will never
|
||||
* produce one.
|
||||
@ -1107,7 +1106,7 @@ public final class DateTimeFormatterBuilder {
|
||||
* "GMT+01:30" -- ZoneOffset.of("GMT+01:30")
|
||||
* </pre>
|
||||
* <p>
|
||||
* Note that this method is is identical to {@code appendZoneId()} except
|
||||
* Note that this method is identical to {@code appendZoneId()} except
|
||||
* in the mechanism used to obtain the zone.
|
||||
*
|
||||
* @return this, for chaining, not null
|
||||
@ -1132,7 +1131,7 @@ public final class DateTimeFormatterBuilder {
|
||||
* for the locale set in the {@link DateTimeFormatter}.
|
||||
* If the temporal object being printed represents an instant, then the text
|
||||
* will be the summer or winter time text as appropriate.
|
||||
* If the lookup for text does not find any suitable reuslt, then the
|
||||
* If the lookup for text does not find any suitable result, then the
|
||||
* {@link ZoneId#getId() ID} will be printed instead.
|
||||
* If the zone cannot be obtained then an exception is thrown unless the
|
||||
* section of the formatter is optional.
|
||||
@ -1168,7 +1167,7 @@ public final class DateTimeFormatterBuilder {
|
||||
* for the locale set in the {@link DateTimeFormatter}.
|
||||
* If the temporal object being printed represents an instant, then the text
|
||||
* will be the summer or winter time text as appropriate.
|
||||
* If the lookup for text does not find any suitable reuslt, then the
|
||||
* If the lookup for text does not find any suitable result, then the
|
||||
* {@link ZoneId#getId() ID} will be printed instead.
|
||||
* If the zone cannot be obtained then an exception is thrown unless the
|
||||
* section of the formatter is optional.
|
||||
@ -1182,7 +1181,7 @@ public final class DateTimeFormatterBuilder {
|
||||
* zone. This method also allows a set of preferred {@link ZoneId} to be
|
||||
* specified for parsing. The matched preferred zone id will be used if the
|
||||
* textural zone name being parsed is not unique.
|
||||
*
|
||||
* <p>
|
||||
* If the zone cannot be parsed then an exception is thrown unless the
|
||||
* section of the formatter is optional.
|
||||
*
|
||||
@ -1227,7 +1226,6 @@ public final class DateTimeFormatterBuilder {
|
||||
* <p>
|
||||
* The calendar system name will be output during a format.
|
||||
* If the chronology cannot be obtained then an exception will be thrown.
|
||||
* The calendar system name is obtained from the Chronology.
|
||||
*
|
||||
* @param textStyle the text style to use, not null
|
||||
* @return this, for chaining, not null
|
||||
@ -1453,7 +1451,7 @@ public final class DateTimeFormatterBuilder {
|
||||
* LLLLL 5 appendText(ChronoField.MONTH_OF_YEAR, TextStyle.NARROW_STANDALONE)
|
||||
*
|
||||
* w 1 append special localized WeekFields element for numeric week-of-year
|
||||
* ww 1 append special localized WeekFields element for numeric week-of-year, zero-padded
|
||||
* ww 2 append special localized WeekFields element for numeric week-of-year, zero-padded
|
||||
* W 1 append special localized WeekFields element for numeric week-of-month
|
||||
* d 1 appendValue(ChronoField.DAY_OF_MONTH)
|
||||
* dd 2 appendValue(ChronoField.DAY_OF_MONTH, 2)
|
||||
@ -1880,7 +1878,6 @@ public final class DateTimeFormatterBuilder {
|
||||
* <p>
|
||||
* During parsing, the padding and decorated element are parsed.
|
||||
* If parsing is lenient, then the pad width is treated as a maximum.
|
||||
* If parsing is case insensitive, then the pad character is matched ignoring case.
|
||||
* The padding is parsed greedily. Thus, if the decorated element starts with
|
||||
* the pad character, it will not be parsed.
|
||||
*
|
||||
|
||||
@ -62,7 +62,6 @@
|
||||
package java.time.format;
|
||||
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
@ -138,7 +137,7 @@ public final class DecimalStyle {
|
||||
* of(Locale.getDefault(Locale.Category.FORMAT))}.
|
||||
*
|
||||
* @see java.util.Locale.Category#FORMAT
|
||||
* @return the info, not null
|
||||
* @return the decimal style, not null
|
||||
*/
|
||||
public static DecimalStyle ofDefaultLocale() {
|
||||
return of(Locale.getDefault(Locale.Category.FORMAT));
|
||||
@ -150,7 +149,7 @@ public final class DecimalStyle {
|
||||
* This method provides access to locale sensitive decimal style symbols.
|
||||
*
|
||||
* @param locale the locale, not null
|
||||
* @return the info, not null
|
||||
* @return the decimal style, not null
|
||||
*/
|
||||
public static DecimalStyle of(Locale locale) {
|
||||
Objects.requireNonNull(locale, "locale");
|
||||
@ -340,7 +339,7 @@ public final class DecimalStyle {
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Checks if this DecimalStyle is equal another DecimalStyle.
|
||||
* Checks if this DecimalStyle is equal to another DecimalStyle.
|
||||
*
|
||||
* @param obj the object to check, null returns false
|
||||
* @return true if this is equal to the other date
|
||||
|
||||
@ -638,7 +638,7 @@ public final class IsoFields {
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
* Implementation of the period unit.
|
||||
* Implementation of the unit.
|
||||
*/
|
||||
private static enum Unit implements TemporalUnit {
|
||||
|
||||
|
||||
@ -157,7 +157,8 @@ public interface Temporal extends TemporalAccessor {
|
||||
* This adjusts this date-time according to the rules of the specified adjuster.
|
||||
* A simple adjuster might simply set the one of the fields, such as the year field.
|
||||
* A more complex adjuster might set the date to the last day of the month.
|
||||
* A selection of common adjustments is provided in {@link TemporalAdjuster}.
|
||||
* A selection of common adjustments is provided in
|
||||
* {@link java.time.temporal.TemporalAdjusters TemporalAdjusters}.
|
||||
* These include finding the "last day of the month" and "next Wednesday".
|
||||
* The adjuster is responsible for handling special cases, such as the varying
|
||||
* lengths of month and leap years.
|
||||
@ -287,7 +288,7 @@ public interface Temporal extends TemporalAccessor {
|
||||
* This provides equivalent, safe behavior for immutable and mutable implementations.
|
||||
*
|
||||
* @param amountToAdd the amount of the specified unit to add, may be negative
|
||||
* @param unit the unit of the period to add, not null
|
||||
* @param unit the unit of the amount to add, not null
|
||||
* @return an object of the same type with the specified period added, not null
|
||||
* @throws DateTimeException if the unit cannot be added
|
||||
* @throws UnsupportedTemporalTypeException if the unit is not supported
|
||||
@ -359,7 +360,7 @@ public interface Temporal extends TemporalAccessor {
|
||||
* </pre>
|
||||
*
|
||||
* @param amountToSubtract the amount of the specified unit to subtract, may be negative
|
||||
* @param unit the unit of the period to subtract, not null
|
||||
* @param unit the unit of the amount to subtract, not null
|
||||
* @return an object of the same type with the specified period subtracted, not null
|
||||
* @throws DateTimeException if the unit cannot be subtracted
|
||||
* @throws UnsupportedTemporalTypeException if the unit is not supported
|
||||
@ -378,12 +379,12 @@ public interface Temporal extends TemporalAccessor {
|
||||
* The start and end points are {@code this} and the specified temporal.
|
||||
* The end point is converted to be of the same type as the start point if different.
|
||||
* The result will be negative if the end is before the start.
|
||||
* For example, the period in hours between two temporal objects can be
|
||||
* For example, the amount in hours between two temporal objects can be
|
||||
* calculated using {@code startTime.until(endTime, HOURS)}.
|
||||
* <p>
|
||||
* The calculation returns a whole number, representing the number of
|
||||
* complete units between the two temporals.
|
||||
* For example, the period in hours between the times 11:30 and 13:29
|
||||
* For example, the amount in hours between the times 11:30 and 13:29
|
||||
* will only be one hour as it is one minute short of two hours.
|
||||
* <p>
|
||||
* There are two equivalent ways of using this method.
|
||||
|
||||
@ -180,7 +180,7 @@ public interface TemporalAccessor {
|
||||
/**
|
||||
* Gets the value of the specified field as an {@code int}.
|
||||
* <p>
|
||||
* This queries the date-time for the value for the specified field.
|
||||
* This queries the date-time for the value of the specified field.
|
||||
* The returned value will always be within the valid range of values for the field.
|
||||
* If the date-time cannot return the value, because the field is unsupported or for
|
||||
* some other reason, an exception will be thrown.
|
||||
@ -229,7 +229,7 @@ public interface TemporalAccessor {
|
||||
/**
|
||||
* Gets the value of the specified field as a {@code long}.
|
||||
* <p>
|
||||
* This queries the date-time for the value for the specified field.
|
||||
* This queries the date-time for the value of the specified field.
|
||||
* The returned value may be outside the valid range of values for the field.
|
||||
* If the date-time cannot return the value, because the field is unsupported or for
|
||||
* some other reason, an exception will be thrown.
|
||||
|
||||
@ -116,7 +116,7 @@ public interface TemporalField {
|
||||
* For example, in the field 'MonthOfYear', the unit is 'Months'.
|
||||
* See also {@link #getRangeUnit()}.
|
||||
*
|
||||
* @return the period unit defining the base unit of the field, not null
|
||||
* @return the unit defining the base unit of the field, not null
|
||||
*/
|
||||
TemporalUnit getBaseUnit();
|
||||
|
||||
@ -130,7 +130,7 @@ public interface TemporalField {
|
||||
* The range is never null. For example, the 'Year' field is shorthand for
|
||||
* 'YearOfForever'. It therefore has a unit of 'Years' and a range of 'Forever'.
|
||||
*
|
||||
* @return the period unit defining the range of the field, not null
|
||||
* @return the unit defining the range of the field, not null
|
||||
*/
|
||||
TemporalUnit getRangeUnit();
|
||||
|
||||
@ -179,7 +179,7 @@ public interface TemporalField {
|
||||
* Checks if this field is supported by the temporal object.
|
||||
* <p>
|
||||
* This determines whether the temporal accessor supports this field.
|
||||
* If this returns false, the the temporal cannot be queried for this field.
|
||||
* If this returns false, then the temporal cannot be queried for this field.
|
||||
* <p>
|
||||
* There are two equivalent ways of using this method.
|
||||
* The first is to invoke this method directly.
|
||||
|
||||
@ -221,7 +221,7 @@ public interface TemporalUnit {
|
||||
* @param temporal the temporal object to adjust, not null
|
||||
* @param amount the amount of this unit to add, positive or negative
|
||||
* @return the adjusted temporal object, not null
|
||||
* @throws DateTimeException if the period cannot be added
|
||||
* @throws DateTimeException if the amount cannot be added
|
||||
* @throws UnsupportedTemporalTypeException if the unit is not supported by the temporal
|
||||
*/
|
||||
<R extends Temporal> R addTo(R temporal, long amount);
|
||||
|
||||
@ -83,7 +83,7 @@ import java.util.Objects;
|
||||
* The discontinuity is normally a gap in spring and an overlap in autumn.
|
||||
* {@code ZoneOffsetTransition} models the transition between the two offsets.
|
||||
* <p>
|
||||
* Gaps occur where there are local date-times that simply do not not exist.
|
||||
* Gaps occur where there are local date-times that simply do not exist.
|
||||
* An example would be when the offset changes from {@code +03:00} to {@code +04:00}.
|
||||
* This might be described as 'the clocks will move forward one hour tonight at 1am'.
|
||||
* <p>
|
||||
@ -334,7 +334,7 @@ public final class ZoneOffsetTransition
|
||||
/**
|
||||
* Does this transition represent a gap in the local time-line.
|
||||
* <p>
|
||||
* Gaps occur where there are local date-times that simply do not not exist.
|
||||
* Gaps occur where there are local date-times that simply do not exist.
|
||||
* An example would be when the offset changes from {@code +01:00} to {@code +02:00}.
|
||||
* This might be described as 'the clocks will move forward one hour tonight at 1am'.
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -696,6 +696,9 @@ public class BitSet implements Cloneable, java.io.Serializable {
|
||||
* <pre> {@code
|
||||
* for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) {
|
||||
* // operate on index i here
|
||||
* if (i == Integer.MAX_VALUE) {
|
||||
* break; // or (i+1) would overflow
|
||||
* }
|
||||
* }}</pre>
|
||||
*
|
||||
* @param fromIndex the index to start checking from (inclusive)
|
||||
@ -1186,10 +1189,12 @@ public class BitSet implements Cloneable, java.io.Serializable {
|
||||
int i = nextSetBit(0);
|
||||
if (i != -1) {
|
||||
b.append(i);
|
||||
for (i = nextSetBit(i+1); i >= 0; i = nextSetBit(i+1)) {
|
||||
while (true) {
|
||||
if (++i < 0) break;
|
||||
if ((i = nextSetBit(i)) < 0) break;
|
||||
int endOfRun = nextClearBit(i);
|
||||
do { b.append(", ").append(i); }
|
||||
while (++i < endOfRun);
|
||||
while (++i != endOfRun);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -26,7 +26,6 @@
|
||||
package java.util;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.BiFunction;
|
||||
@ -92,8 +91,10 @@ import java.util.function.BiFunction;
|
||||
* ConcurrentModificationException}. Thus, in the face of concurrent
|
||||
* modification, the iterator fails quickly and cleanly, rather than risking
|
||||
* arbitrary, non-deterministic behavior at an undetermined time in the future.
|
||||
* The Enumerations returned by Hashtable's keys and elements methods are
|
||||
* <em>not</em> fail-fast.
|
||||
* The Enumerations returned by Hashtable's {@link #keys keys} and
|
||||
* {@link #elements elements} methods are <em>not</em> fail-fast; if the
|
||||
* Hashtable is structurally modified at any time after the enumeration is
|
||||
* created then the results of enumerating are undefined.
|
||||
*
|
||||
* <p>Note that the fail-fast behavior of an iterator cannot be guaranteed
|
||||
* as it is, generally speaking, impossible to make any hard guarantees in the
|
||||
@ -115,6 +116,9 @@ import java.util.function.BiFunction;
|
||||
* to use {@link java.util.concurrent.ConcurrentHashMap} in place of
|
||||
* {@code Hashtable}.
|
||||
*
|
||||
* @param <K> the type of keys maintained by this map
|
||||
* @param <V> the type of mapped values
|
||||
*
|
||||
* @author Arthur van Hoff
|
||||
* @author Josh Bloch
|
||||
* @author Neal Gafter
|
||||
@ -246,6 +250,9 @@ public class Hashtable<K,V>
|
||||
|
||||
/**
|
||||
* Returns an enumeration of the keys in this hashtable.
|
||||
* Use the Enumeration methods on the returned object to fetch the keys
|
||||
* sequentially. If the hashtable is structurally modified while enumerating
|
||||
* over the keys then the results of enumerating are undefined.
|
||||
*
|
||||
* @return an enumeration of the keys in this hashtable.
|
||||
* @see Enumeration
|
||||
@ -260,7 +267,8 @@ public class Hashtable<K,V>
|
||||
/**
|
||||
* Returns an enumeration of the values in this hashtable.
|
||||
* Use the Enumeration methods on the returned object to fetch the elements
|
||||
* sequentially.
|
||||
* sequentially. If the hashtable is structurally modified while enumerating
|
||||
* over the values then the results of enumerating are undefined.
|
||||
*
|
||||
* @return an enumeration of the values in this hashtable.
|
||||
* @see java.util.Enumeration
|
||||
@ -417,8 +425,6 @@ public class Hashtable<K,V>
|
||||
}
|
||||
|
||||
private void addEntry(int hash, K key, V value, int index) {
|
||||
modCount++;
|
||||
|
||||
Entry<?,?> tab[] = table;
|
||||
if (count >= threshold) {
|
||||
// Rehash the table if the threshold is exceeded
|
||||
@ -434,6 +440,7 @@ public class Hashtable<K,V>
|
||||
Entry<K,V> e = (Entry<K,V>) tab[index];
|
||||
tab[index] = new Entry<>(hash, key, value, e);
|
||||
count++;
|
||||
modCount++;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -494,12 +501,12 @@ public class Hashtable<K,V>
|
||||
Entry<K,V> e = (Entry<K,V>)tab[index];
|
||||
for(Entry<K,V> prev = null ; e != null ; prev = e, e = e.next) {
|
||||
if ((e.hash == hash) && e.key.equals(key)) {
|
||||
modCount++;
|
||||
if (prev != null) {
|
||||
prev.next = e.next;
|
||||
} else {
|
||||
tab[index] = e.next;
|
||||
}
|
||||
modCount++;
|
||||
count--;
|
||||
V oldValue = e.value;
|
||||
e.value = null;
|
||||
@ -528,9 +535,9 @@ public class Hashtable<K,V>
|
||||
*/
|
||||
public synchronized void clear() {
|
||||
Entry<?,?> tab[] = table;
|
||||
modCount++;
|
||||
for (int index = tab.length; --index >= 0; )
|
||||
tab[index] = null;
|
||||
modCount++;
|
||||
count = 0;
|
||||
}
|
||||
|
||||
@ -719,14 +726,14 @@ public class Hashtable<K,V>
|
||||
Entry<K,V> e = (Entry<K,V>)tab[index];
|
||||
for(Entry<K,V> prev = null; e != null; prev = e, e = e.next) {
|
||||
if (e.hash==hash && e.equals(entry)) {
|
||||
modCount++;
|
||||
if (prev != null)
|
||||
prev.next = e.next;
|
||||
else
|
||||
tab[index] = e.next;
|
||||
|
||||
e.value = null; // clear for gc.
|
||||
modCount++;
|
||||
count--;
|
||||
e.value = null;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -939,14 +946,14 @@ public class Hashtable<K,V>
|
||||
Entry<K,V> e = (Entry<K,V>)tab[index];
|
||||
for (Entry<K,V> prev = null; e != null; prev = e, e = e.next) {
|
||||
if ((e.hash == hash) && e.key.equals(key) && e.value.equals(value)) {
|
||||
modCount++;
|
||||
if (prev != null) {
|
||||
prev.next = e.next;
|
||||
} else {
|
||||
tab[index] = e.next;
|
||||
}
|
||||
e.value = null; // clear for gc
|
||||
modCount++;
|
||||
count--;
|
||||
e.value = null;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -1030,12 +1037,12 @@ public class Hashtable<K,V>
|
||||
if (e.hash == hash && e.key.equals(key)) {
|
||||
V newValue = remappingFunction.apply(key, e.value);
|
||||
if (newValue == null) {
|
||||
modCount++;
|
||||
if (prev != null) {
|
||||
prev.next = e.next;
|
||||
} else {
|
||||
tab[index] = e.next;
|
||||
}
|
||||
modCount++;
|
||||
count--;
|
||||
} else {
|
||||
e.value = newValue;
|
||||
@ -1059,12 +1066,12 @@ public class Hashtable<K,V>
|
||||
if (e.hash == hash && Objects.equals(e.key, key)) {
|
||||
V newValue = remappingFunction.apply(key, e.value);
|
||||
if (newValue == null) {
|
||||
modCount++;
|
||||
if (prev != null) {
|
||||
prev.next = e.next;
|
||||
} else {
|
||||
tab[index] = e.next;
|
||||
}
|
||||
modCount++;
|
||||
count--;
|
||||
} else {
|
||||
e.value = newValue;
|
||||
@ -1094,12 +1101,12 @@ public class Hashtable<K,V>
|
||||
if (e.hash == hash && e.key.equals(key)) {
|
||||
V newValue = remappingFunction.apply(e.value, value);
|
||||
if (newValue == null) {
|
||||
modCount++;
|
||||
if (prev != null) {
|
||||
prev.next = e.next;
|
||||
} else {
|
||||
tab[index] = e.next;
|
||||
}
|
||||
modCount++;
|
||||
count--;
|
||||
} else {
|
||||
e.value = newValue;
|
||||
@ -1298,24 +1305,24 @@ public class Hashtable<K,V>
|
||||
* by passing an Enumeration.
|
||||
*/
|
||||
private class Enumerator<T> implements Enumeration<T>, Iterator<T> {
|
||||
Entry<?,?>[] table = Hashtable.this.table;
|
||||
final Entry<?,?>[] table = Hashtable.this.table;
|
||||
int index = table.length;
|
||||
Entry<?,?> entry;
|
||||
Entry<?,?> lastReturned;
|
||||
int type;
|
||||
final int type;
|
||||
|
||||
/**
|
||||
* Indicates whether this Enumerator is serving as an Iterator
|
||||
* or an Enumeration. (true -> Iterator).
|
||||
*/
|
||||
boolean iterator;
|
||||
final boolean iterator;
|
||||
|
||||
/**
|
||||
* The modCount value that the iterator believes that the backing
|
||||
* Hashtable should have. If this expectation is violated, the iterator
|
||||
* has detected concurrent modification.
|
||||
*/
|
||||
protected int expectedModCount = modCount;
|
||||
protected int expectedModCount = Hashtable.this.modCount;
|
||||
|
||||
Enumerator(int type, boolean iterator) {
|
||||
this.type = type;
|
||||
@ -1360,7 +1367,7 @@ public class Hashtable<K,V>
|
||||
}
|
||||
|
||||
public T next() {
|
||||
if (modCount != expectedModCount)
|
||||
if (Hashtable.this.modCount != expectedModCount)
|
||||
throw new ConcurrentModificationException();
|
||||
return nextElement();
|
||||
}
|
||||
@ -1381,14 +1388,14 @@ public class Hashtable<K,V>
|
||||
Entry<K,V> e = (Entry<K,V>)tab[index];
|
||||
for(Entry<K,V> prev = null; e != null; prev = e, e = e.next) {
|
||||
if (e == lastReturned) {
|
||||
modCount++;
|
||||
expectedModCount++;
|
||||
if (prev == null)
|
||||
tab[index] = e.next;
|
||||
else
|
||||
prev.next = e.next;
|
||||
count--;
|
||||
expectedModCount++;
|
||||
lastReturned = null;
|
||||
Hashtable.this.modCount++;
|
||||
Hashtable.this.count--;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,7 +56,9 @@ import java.util.function.UnaryOperator;
|
||||
* concurrent modification, the iterator fails quickly and cleanly, rather
|
||||
* than risking arbitrary, non-deterministic behavior at an undetermined
|
||||
* time in the future. The {@link Enumeration Enumerations} returned by
|
||||
* the {@link #elements() elements} method are <em>not</em> fail-fast.
|
||||
* the {@link #elements() elements} method are <em>not</em> fail-fast; if the
|
||||
* Vector is structurally modified at any time after the enumeration is
|
||||
* created then the results of enumerating are undefined.
|
||||
*
|
||||
* <p>Note that the fail-fast behavior of an iterator cannot be guaranteed
|
||||
* as it is, generally speaking, impossible to make any hard guarantees in the
|
||||
@ -74,6 +76,8 @@ import java.util.function.UnaryOperator;
|
||||
* implementation is not needed, it is recommended to use {@link
|
||||
* ArrayList} in place of {@code Vector}.
|
||||
*
|
||||
* @param <E> Type of component elements
|
||||
*
|
||||
* @author Lee Boynton
|
||||
* @author Jonathan Payne
|
||||
* @see Collection
|
||||
@ -330,7 +334,9 @@ public class Vector<E>
|
||||
* Returns an enumeration of the components of this vector. The
|
||||
* returned {@code Enumeration} object will generate all items in
|
||||
* this vector. The first item generated is the item at index {@code 0},
|
||||
* then the item at index {@code 1}, and so on.
|
||||
* then the item at index {@code 1}, and so on. If the vector is
|
||||
* structurally modified while enumerating over the elements then the
|
||||
* results of enumerating are undefined.
|
||||
*
|
||||
* @return an enumeration of the components of this vector
|
||||
* @see Iterator
|
||||
@ -553,7 +559,6 @@ public class Vector<E>
|
||||
* ({@code index < 0 || index >= size()})
|
||||
*/
|
||||
public synchronized void removeElementAt(int index) {
|
||||
modCount++;
|
||||
if (index >= elementCount) {
|
||||
throw new ArrayIndexOutOfBoundsException(index + " >= " +
|
||||
elementCount);
|
||||
@ -565,6 +570,7 @@ public class Vector<E>
|
||||
if (j > 0) {
|
||||
System.arraycopy(elementData, index + 1, elementData, index, j);
|
||||
}
|
||||
modCount++;
|
||||
elementCount--;
|
||||
elementData[elementCount] = null; /* to let gc do its work */
|
||||
}
|
||||
@ -593,7 +599,6 @@ public class Vector<E>
|
||||
* ({@code index < 0 || index > size()})
|
||||
*/
|
||||
public synchronized void insertElementAt(E obj, int index) {
|
||||
modCount++;
|
||||
if (index > elementCount) {
|
||||
throw new ArrayIndexOutOfBoundsException(index
|
||||
+ " > " + elementCount);
|
||||
@ -601,6 +606,7 @@ public class Vector<E>
|
||||
ensureCapacityHelper(elementCount + 1);
|
||||
System.arraycopy(elementData, index, elementData, index + 1, elementCount - index);
|
||||
elementData[index] = obj;
|
||||
modCount++;
|
||||
elementCount++;
|
||||
}
|
||||
|
||||
@ -616,8 +622,8 @@ public class Vector<E>
|
||||
* @param obj the component to be added
|
||||
*/
|
||||
public synchronized void addElement(E obj) {
|
||||
modCount++;
|
||||
ensureCapacityHelper(elementCount + 1);
|
||||
modCount++;
|
||||
elementData[elementCount++] = obj;
|
||||
}
|
||||
|
||||
@ -653,11 +659,11 @@ public class Vector<E>
|
||||
* method (which is part of the {@link List} interface).
|
||||
*/
|
||||
public synchronized void removeAllElements() {
|
||||
modCount++;
|
||||
// Let gc do its work
|
||||
for (int i = 0; i < elementCount; i++)
|
||||
elementData[i] = null;
|
||||
|
||||
modCount++;
|
||||
elementCount = 0;
|
||||
}
|
||||
|
||||
@ -705,12 +711,15 @@ public class Vector<E>
|
||||
* of the Vector <em>only</em> if the caller knows that the Vector
|
||||
* does not contain any null elements.)
|
||||
*
|
||||
* @param <T> type of array elements. The same type as {@code <E>} or a
|
||||
* supertype of {@code <E>}.
|
||||
* @param a the array into which the elements of the Vector are to
|
||||
* be stored, if it is big enough; otherwise, a new array of the
|
||||
* same runtime type is allocated for this purpose.
|
||||
* @return an array containing the elements of the Vector
|
||||
* @throws ArrayStoreException if the runtime type of a is not a supertype
|
||||
* of the runtime type of every element in this Vector
|
||||
* @throws ArrayStoreException if the runtime type of a, {@code <T>}, is not
|
||||
* a supertype of the runtime type, {@code <E>}, of every element in this
|
||||
* Vector
|
||||
* @throws NullPointerException if the given array is null
|
||||
* @since 1.2
|
||||
*/
|
||||
@ -778,8 +787,8 @@ public class Vector<E>
|
||||
* @since 1.2
|
||||
*/
|
||||
public synchronized boolean add(E e) {
|
||||
modCount++;
|
||||
ensureCapacityHelper(elementCount + 1);
|
||||
modCount++;
|
||||
elementData[elementCount++] = e;
|
||||
return true;
|
||||
}
|
||||
@ -879,14 +888,18 @@ public class Vector<E>
|
||||
* @throws NullPointerException if the specified collection is null
|
||||
* @since 1.2
|
||||
*/
|
||||
public synchronized boolean addAll(Collection<? extends E> c) {
|
||||
modCount++;
|
||||
public boolean addAll(Collection<? extends E> c) {
|
||||
Object[] a = c.toArray();
|
||||
int numNew = a.length;
|
||||
ensureCapacityHelper(elementCount + numNew);
|
||||
System.arraycopy(a, 0, elementData, elementCount, numNew);
|
||||
elementCount += numNew;
|
||||
return numNew != 0;
|
||||
if (numNew > 0) {
|
||||
synchronized (this) {
|
||||
ensureCapacityHelper(elementCount + numNew);
|
||||
System.arraycopy(a, 0, elementData, elementCount, numNew);
|
||||
modCount++;
|
||||
elementCount += numNew;
|
||||
}
|
||||
}
|
||||
return numNew > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -951,22 +964,25 @@ public class Vector<E>
|
||||
* @since 1.2
|
||||
*/
|
||||
public synchronized boolean addAll(int index, Collection<? extends E> c) {
|
||||
modCount++;
|
||||
if (index < 0 || index > elementCount)
|
||||
throw new ArrayIndexOutOfBoundsException(index);
|
||||
|
||||
Object[] a = c.toArray();
|
||||
int numNew = a.length;
|
||||
ensureCapacityHelper(elementCount + numNew);
|
||||
|
||||
int numMoved = elementCount - index;
|
||||
if (numMoved > 0)
|
||||
System.arraycopy(elementData, index, elementData, index + numNew,
|
||||
numMoved);
|
||||
if (numNew > 0) {
|
||||
ensureCapacityHelper(elementCount + numNew);
|
||||
|
||||
System.arraycopy(a, 0, elementData, index, numNew);
|
||||
elementCount += numNew;
|
||||
return numNew != 0;
|
||||
int numMoved = elementCount - index;
|
||||
if (numMoved > 0)
|
||||
System.arraycopy(elementData, index, elementData,
|
||||
index + numNew, numMoved);
|
||||
|
||||
System.arraycopy(a, 0, elementData, index, numNew);
|
||||
elementCount += numNew;
|
||||
modCount++;
|
||||
}
|
||||
return numNew > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1047,12 +1063,12 @@ public class Vector<E>
|
||||
* (If {@code toIndex==fromIndex}, this operation has no effect.)
|
||||
*/
|
||||
protected synchronized void removeRange(int fromIndex, int toIndex) {
|
||||
modCount++;
|
||||
int numMoved = elementCount - toIndex;
|
||||
System.arraycopy(elementData, toIndex, elementData, fromIndex,
|
||||
numMoved);
|
||||
|
||||
// Let gc do its work
|
||||
modCount++;
|
||||
int newElementCount = elementCount - (toIndex-fromIndex);
|
||||
while (elementCount != newElementCount)
|
||||
elementData[--elementCount] = null;
|
||||
@ -1420,7 +1436,7 @@ public class Vector<E>
|
||||
}
|
||||
|
||||
public long estimateSize() {
|
||||
return (long) (getFence() - index);
|
||||
return getFence() - index;
|
||||
}
|
||||
|
||||
public int characteristics() {
|
||||
|
||||
@ -278,17 +278,61 @@ final class SortedOps {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract {@link Sink} for implementing sort on reference streams.
|
||||
*
|
||||
* <p>
|
||||
* Note: documentation below applies to reference and all primitive sinks.
|
||||
* <p>
|
||||
* Sorting sinks first accept all elements, buffering then into an array
|
||||
* or a re-sizable data structure, if the size of the pipeline is known or
|
||||
* unknown respectively. At the end of the sink protocol those elements are
|
||||
* sorted and then pushed downstream.
|
||||
* This class records if {@link #cancellationRequested} is called. If so it
|
||||
* can be inferred that the source pushing source elements into the pipeline
|
||||
* knows that the pipeline is short-circuiting. In such cases sub-classes
|
||||
* pushing elements downstream will preserve the short-circuiting protocol
|
||||
* by calling {@code downstream.cancellationRequested()} and checking the
|
||||
* result is {@code false} before an element is pushed.
|
||||
* <p>
|
||||
* Note that the above behaviour is an optimization for sorting with
|
||||
* sequential streams. It is not an error that more elements, than strictly
|
||||
* required to produce a result, may flow through the pipeline. This can
|
||||
* occur, in general (not restricted to just sorting), for short-circuiting
|
||||
* parallel pipelines.
|
||||
*/
|
||||
private static abstract class AbstractRefSortingSink<T> extends Sink.ChainedReference<T, T> {
|
||||
protected final Comparator<? super T> comparator;
|
||||
// @@@ could be a lazy final value, if/when support is added
|
||||
protected boolean cancellationWasRequested;
|
||||
|
||||
AbstractRefSortingSink(Sink<? super T> downstream, Comparator<? super T> comparator) {
|
||||
super(downstream);
|
||||
this.comparator = comparator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Records is cancellation is requested so short-circuiting behaviour
|
||||
* can be preserved when the sorted elements are pushed downstream.
|
||||
*
|
||||
* @return false, as this sink never short-circuits.
|
||||
*/
|
||||
@Override
|
||||
public final boolean cancellationRequested() {
|
||||
cancellationWasRequested = true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link Sink} for implementing sort on SIZED reference streams.
|
||||
*/
|
||||
private static final class SizedRefSortingSink<T> extends Sink.ChainedReference<T, T> {
|
||||
private final Comparator<? super T> comparator;
|
||||
private static final class SizedRefSortingSink<T> extends AbstractRefSortingSink<T> {
|
||||
private T[] array;
|
||||
private int offset;
|
||||
|
||||
SizedRefSortingSink(Sink<? super T> sink, Comparator<? super T> comparator) {
|
||||
super(sink);
|
||||
this.comparator = comparator;
|
||||
super(sink, comparator);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -303,8 +347,14 @@ final class SortedOps {
|
||||
public void end() {
|
||||
Arrays.sort(array, 0, offset, comparator);
|
||||
downstream.begin(offset);
|
||||
for (int i = 0; i < offset; i++)
|
||||
downstream.accept(array[i]);
|
||||
if (!cancellationWasRequested) {
|
||||
for (int i = 0; i < offset; i++)
|
||||
downstream.accept(array[i]);
|
||||
}
|
||||
else {
|
||||
for (int i = 0; i < offset && !downstream.cancellationRequested(); i++)
|
||||
downstream.accept(array[i]);
|
||||
}
|
||||
downstream.end();
|
||||
array = null;
|
||||
}
|
||||
@ -318,13 +368,11 @@ final class SortedOps {
|
||||
/**
|
||||
* {@link Sink} for implementing sort on reference streams.
|
||||
*/
|
||||
private static final class RefSortingSink<T> extends Sink.ChainedReference<T, T> {
|
||||
private final Comparator<? super T> comparator;
|
||||
private static final class RefSortingSink<T> extends AbstractRefSortingSink<T> {
|
||||
private ArrayList<T> list;
|
||||
|
||||
RefSortingSink(Sink<? super T> sink, Comparator<? super T> comparator) {
|
||||
super(sink);
|
||||
this.comparator = comparator;
|
||||
super(sink, comparator);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -338,7 +386,15 @@ final class SortedOps {
|
||||
public void end() {
|
||||
list.sort(comparator);
|
||||
downstream.begin(list.size());
|
||||
list.forEach(downstream::accept);
|
||||
if (!cancellationWasRequested) {
|
||||
list.forEach(downstream::accept);
|
||||
}
|
||||
else {
|
||||
for (T t : list) {
|
||||
if (downstream.cancellationRequested()) break;
|
||||
downstream.accept(t);
|
||||
}
|
||||
}
|
||||
downstream.end();
|
||||
list = null;
|
||||
}
|
||||
@ -349,10 +405,27 @@ final class SortedOps {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract {@link Sink} for implementing sort on int streams.
|
||||
*/
|
||||
private static abstract class AbstractIntSortingSink extends Sink.ChainedInt<Integer> {
|
||||
protected boolean cancellationWasRequested;
|
||||
|
||||
AbstractIntSortingSink(Sink<? super Integer> downstream) {
|
||||
super(downstream);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean cancellationRequested() {
|
||||
cancellationWasRequested = true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link Sink} for implementing sort on SIZED int streams.
|
||||
*/
|
||||
private static final class SizedIntSortingSink extends Sink.ChainedInt<Integer> {
|
||||
private static final class SizedIntSortingSink extends AbstractIntSortingSink {
|
||||
private int[] array;
|
||||
private int offset;
|
||||
|
||||
@ -371,8 +444,14 @@ final class SortedOps {
|
||||
public void end() {
|
||||
Arrays.sort(array, 0, offset);
|
||||
downstream.begin(offset);
|
||||
for (int i = 0; i < offset; i++)
|
||||
downstream.accept(array[i]);
|
||||
if (!cancellationWasRequested) {
|
||||
for (int i = 0; i < offset; i++)
|
||||
downstream.accept(array[i]);
|
||||
}
|
||||
else {
|
||||
for (int i = 0; i < offset && !downstream.cancellationRequested(); i++)
|
||||
downstream.accept(array[i]);
|
||||
}
|
||||
downstream.end();
|
||||
array = null;
|
||||
}
|
||||
@ -386,7 +465,7 @@ final class SortedOps {
|
||||
/**
|
||||
* {@link Sink} for implementing sort on int streams.
|
||||
*/
|
||||
private static final class IntSortingSink extends Sink.ChainedInt<Integer> {
|
||||
private static final class IntSortingSink extends AbstractIntSortingSink {
|
||||
private SpinedBuffer.OfInt b;
|
||||
|
||||
IntSortingSink(Sink<? super Integer> sink) {
|
||||
@ -405,8 +484,16 @@ final class SortedOps {
|
||||
int[] ints = b.asPrimitiveArray();
|
||||
Arrays.sort(ints);
|
||||
downstream.begin(ints.length);
|
||||
for (int anInt : ints)
|
||||
downstream.accept(anInt);
|
||||
if (!cancellationWasRequested) {
|
||||
for (int anInt : ints)
|
||||
downstream.accept(anInt);
|
||||
}
|
||||
else {
|
||||
for (int anInt : ints) {
|
||||
if (downstream.cancellationRequested()) break;
|
||||
downstream.accept(anInt);
|
||||
}
|
||||
}
|
||||
downstream.end();
|
||||
}
|
||||
|
||||
@ -416,10 +503,27 @@ final class SortedOps {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract {@link Sink} for implementing sort on long streams.
|
||||
*/
|
||||
private static abstract class AbstractLongSortingSink extends Sink.ChainedLong<Long> {
|
||||
protected boolean cancellationWasRequested;
|
||||
|
||||
AbstractLongSortingSink(Sink<? super Long> downstream) {
|
||||
super(downstream);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean cancellationRequested() {
|
||||
cancellationWasRequested = true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link Sink} for implementing sort on SIZED long streams.
|
||||
*/
|
||||
private static final class SizedLongSortingSink extends Sink.ChainedLong<Long> {
|
||||
private static final class SizedLongSortingSink extends AbstractLongSortingSink {
|
||||
private long[] array;
|
||||
private int offset;
|
||||
|
||||
@ -438,8 +542,14 @@ final class SortedOps {
|
||||
public void end() {
|
||||
Arrays.sort(array, 0, offset);
|
||||
downstream.begin(offset);
|
||||
for (int i = 0; i < offset; i++)
|
||||
downstream.accept(array[i]);
|
||||
if (!cancellationWasRequested) {
|
||||
for (int i = 0; i < offset; i++)
|
||||
downstream.accept(array[i]);
|
||||
}
|
||||
else {
|
||||
for (int i = 0; i < offset && !downstream.cancellationRequested(); i++)
|
||||
downstream.accept(array[i]);
|
||||
}
|
||||
downstream.end();
|
||||
array = null;
|
||||
}
|
||||
@ -453,7 +563,7 @@ final class SortedOps {
|
||||
/**
|
||||
* {@link Sink} for implementing sort on long streams.
|
||||
*/
|
||||
private static final class LongSortingSink extends Sink.ChainedLong<Long> {
|
||||
private static final class LongSortingSink extends AbstractLongSortingSink {
|
||||
private SpinedBuffer.OfLong b;
|
||||
|
||||
LongSortingSink(Sink<? super Long> sink) {
|
||||
@ -472,8 +582,16 @@ final class SortedOps {
|
||||
long[] longs = b.asPrimitiveArray();
|
||||
Arrays.sort(longs);
|
||||
downstream.begin(longs.length);
|
||||
for (long aLong : longs)
|
||||
downstream.accept(aLong);
|
||||
if (!cancellationWasRequested) {
|
||||
for (long aLong : longs)
|
||||
downstream.accept(aLong);
|
||||
}
|
||||
else {
|
||||
for (long aLong : longs) {
|
||||
if (downstream.cancellationRequested()) break;
|
||||
downstream.accept(aLong);
|
||||
}
|
||||
}
|
||||
downstream.end();
|
||||
}
|
||||
|
||||
@ -483,10 +601,27 @@ final class SortedOps {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract {@link Sink} for implementing sort on long streams.
|
||||
*/
|
||||
private static abstract class AbstractDoubleSortingSink extends Sink.ChainedDouble<Double> {
|
||||
protected boolean cancellationWasRequested;
|
||||
|
||||
AbstractDoubleSortingSink(Sink<? super Double> downstream) {
|
||||
super(downstream);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean cancellationRequested() {
|
||||
cancellationWasRequested = true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@link Sink} for implementing sort on SIZED double streams.
|
||||
*/
|
||||
private static final class SizedDoubleSortingSink extends Sink.ChainedDouble<Double> {
|
||||
private static final class SizedDoubleSortingSink extends AbstractDoubleSortingSink {
|
||||
private double[] array;
|
||||
private int offset;
|
||||
|
||||
@ -505,8 +640,14 @@ final class SortedOps {
|
||||
public void end() {
|
||||
Arrays.sort(array, 0, offset);
|
||||
downstream.begin(offset);
|
||||
for (int i = 0; i < offset; i++)
|
||||
downstream.accept(array[i]);
|
||||
if (!cancellationWasRequested) {
|
||||
for (int i = 0; i < offset; i++)
|
||||
downstream.accept(array[i]);
|
||||
}
|
||||
else {
|
||||
for (int i = 0; i < offset && !downstream.cancellationRequested(); i++)
|
||||
downstream.accept(array[i]);
|
||||
}
|
||||
downstream.end();
|
||||
array = null;
|
||||
}
|
||||
@ -520,7 +661,7 @@ final class SortedOps {
|
||||
/**
|
||||
* {@link Sink} for implementing sort on double streams.
|
||||
*/
|
||||
private static final class DoubleSortingSink extends Sink.ChainedDouble<Double> {
|
||||
private static final class DoubleSortingSink extends AbstractDoubleSortingSink {
|
||||
private SpinedBuffer.OfDouble b;
|
||||
|
||||
DoubleSortingSink(Sink<? super Double> sink) {
|
||||
@ -539,8 +680,16 @@ final class SortedOps {
|
||||
double[] doubles = b.asPrimitiveArray();
|
||||
Arrays.sort(doubles);
|
||||
downstream.begin(doubles.length);
|
||||
for (double aDouble : doubles)
|
||||
downstream.accept(aDouble);
|
||||
if (!cancellationWasRequested) {
|
||||
for (double aDouble : doubles)
|
||||
downstream.accept(aDouble);
|
||||
}
|
||||
else {
|
||||
for (double aDouble : doubles) {
|
||||
if (downstream.cancellationRequested()) break;
|
||||
downstream.accept(aDouble);
|
||||
}
|
||||
}
|
||||
downstream.end();
|
||||
}
|
||||
|
||||
|
||||
@ -69,6 +69,14 @@ import java.util.jar.Manifest;
|
||||
|
||||
public enum LauncherHelper {
|
||||
INSTANCE;
|
||||
|
||||
// used to identify JavaFX applications
|
||||
private static final String JAVAFX_APPLICATION_MARKER =
|
||||
"JavaFX-Application-Class";
|
||||
private static final String JAVAFX_APPLICATION_CLASS_NAME =
|
||||
"javafx.application.Application";
|
||||
private static final String JAVAFX_FXHELPER_CLASS_NAME_SUFFIX =
|
||||
"sun.launcher.LauncherHelper$FXHelper";
|
||||
private static final String MAIN_CLASS = "Main-Class";
|
||||
|
||||
private static StringBuilder outBuf = new StringBuilder();
|
||||
@ -418,7 +426,8 @@ public enum LauncherHelper {
|
||||
* exists to enforce compliance with the jar specification
|
||||
*/
|
||||
if (mainAttrs.containsKey(
|
||||
new Attributes.Name(FXHelper.JAVAFX_APPLICATION_MARKER))) {
|
||||
new Attributes.Name(JAVAFX_APPLICATION_MARKER))) {
|
||||
FXHelper.setFXLaunchParameters(jarname, LM_JAR);
|
||||
return FXHelper.class.getName();
|
||||
}
|
||||
|
||||
@ -516,9 +525,9 @@ public enum LauncherHelper {
|
||||
* the main class may or may not have a main method, so do this before
|
||||
* validating the main class.
|
||||
*/
|
||||
if (mainClass.equals(FXHelper.class) ||
|
||||
FXHelper.doesExtendFXApplication(mainClass)) {
|
||||
// Will abort() if there are problems with the FX runtime
|
||||
if (JAVAFX_FXHELPER_CLASS_NAME_SUFFIX.equals(mainClass.getName()) ||
|
||||
doesExtendFXApplication(mainClass)) {
|
||||
// Will abort() if there are problems with FX runtime
|
||||
FXHelper.setFXLaunchParameters(what, mode);
|
||||
return FXHelper.class;
|
||||
}
|
||||
@ -537,6 +546,21 @@ public enum LauncherHelper {
|
||||
return appClass;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if the given class is a JavaFX Application class. This is done
|
||||
* in a way that does not cause the Application class to load or throw
|
||||
* ClassNotFoundException if the JavaFX runtime is not available.
|
||||
*/
|
||||
private static boolean doesExtendFXApplication(Class<?> mainClass) {
|
||||
for (Class<?> sc = mainClass.getSuperclass(); sc != null;
|
||||
sc = sc.getSuperclass()) {
|
||||
if (sc.getName().equals(JAVAFX_APPLICATION_CLASS_NAME)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check the existence and signature of main and abort if incorrect
|
||||
static void validateMainClass(Class<?> mainClass) {
|
||||
Method mainMethod;
|
||||
@ -545,7 +569,7 @@ public enum LauncherHelper {
|
||||
} catch (NoSuchMethodException nsme) {
|
||||
// invalid main or not FX application, abort with an error
|
||||
abort(null, "java.launcher.cls.error4", mainClass.getName(),
|
||||
FXHelper.JAVAFX_APPLICATION_CLASS_NAME);
|
||||
JAVAFX_APPLICATION_CLASS_NAME);
|
||||
return; // Avoid compiler issues
|
||||
}
|
||||
|
||||
@ -668,11 +692,7 @@ public enum LauncherHelper {
|
||||
}
|
||||
|
||||
static final class FXHelper {
|
||||
// Marker entry in jar manifest that designates a JavaFX application jar
|
||||
private static final String JAVAFX_APPLICATION_MARKER =
|
||||
"JavaFX-Application-Class";
|
||||
private static final String JAVAFX_APPLICATION_CLASS_NAME =
|
||||
"javafx.application.Application";
|
||||
|
||||
private static final String JAVAFX_LAUNCHER_CLASS_NAME =
|
||||
"com.sun.javafx.application.LauncherImpl";
|
||||
|
||||
@ -742,21 +762,6 @@ public enum LauncherHelper {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if the given class is a JavaFX Application class. This is done
|
||||
* in a way that does not cause the Application class to load or throw
|
||||
* ClassNotFoundException if the JavaFX runtime is not available.
|
||||
*/
|
||||
private static boolean doesExtendFXApplication(Class<?> mainClass) {
|
||||
for (Class<?> sc = mainClass.getSuperclass(); sc != null;
|
||||
sc = sc.getSuperclass()) {
|
||||
if (sc.getName().equals(JAVAFX_APPLICATION_CLASS_NAME)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void main(String... args) throws Exception {
|
||||
if (fxLauncherMethod == null
|
||||
|| fxLaunchMode == null
|
||||
|
||||
@ -249,6 +249,18 @@ tools/launcher/FXLauncherTest.java linux-all
|
||||
|
||||
# jdk_jdi
|
||||
|
||||
# 6983531
|
||||
com/sun/jdi/BadHandshakeTest.java linux-all, windows-all
|
||||
|
||||
# 8004127
|
||||
com/sun/jdi/RedefineImplementor.sh generic-all
|
||||
|
||||
# 8031555
|
||||
com/sun/jdi/JdbMethodExitTest.sh generic-all
|
||||
|
||||
# 8041934
|
||||
com/sun/jdi/RepStep.java generic-all
|
||||
|
||||
############################################################################
|
||||
|
||||
# jdk_util
|
||||
@ -270,4 +282,10 @@ sun/tools/jcmd/TestJcmdSanity.java windows-all
|
||||
# 8033104
|
||||
sun/jvmstat/monitor/MonitoredVm/CR6672135.java generic-all
|
||||
|
||||
# 8041989
|
||||
sun/tools/jstatd/TestJstatdDefaults.java generic-all
|
||||
|
||||
# 8037285
|
||||
sun/tools/jstatd/TestJstatdServer.java generic-all
|
||||
|
||||
############################################################################
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -23,7 +23,7 @@
|
||||
|
||||
/* @test
|
||||
* @bug 4098239 4107540 4080736 4261102 4274710 4305272
|
||||
* 4979017 4979028 4979031 5030267 6222207
|
||||
* 4979017 4979028 4979031 5030267 6222207 8040806
|
||||
* @summary Test the operation of the methods of BitSet class
|
||||
* @author Mike McCloskey, Martin Buchholz
|
||||
*/
|
||||
@ -897,6 +897,16 @@ public class BSMethods {
|
||||
private static void testToString() {
|
||||
check(new BitSet().toString().equals("{}"));
|
||||
check(makeSet(2,3,42,43,234).toString().equals("{2, 3, 42, 43, 234}"));
|
||||
try {
|
||||
check(makeSet(Integer.MAX_VALUE-1).toString().equals(
|
||||
"{" + (Integer.MAX_VALUE-1) + "}"));
|
||||
check(makeSet(Integer.MAX_VALUE).toString().equals(
|
||||
"{" + Integer.MAX_VALUE + "}"));
|
||||
check(makeSet(0, 1, Integer.MAX_VALUE-1, Integer.MAX_VALUE).toString().equals(
|
||||
"{0, 1, " + (Integer.MAX_VALUE-1) + ", " + Integer.MAX_VALUE + "}"));
|
||||
} catch (IndexOutOfBoundsException exc) {
|
||||
fail("toString() with indices near MAX_VALUE");
|
||||
}
|
||||
}
|
||||
|
||||
private static void testLogicalIdentities() {
|
||||
|
||||
@ -26,6 +26,9 @@ import org.testng.annotations.Test;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Spliterators;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.*;
|
||||
@ -122,24 +125,33 @@ public class SortedOpTest extends OpTestCase {
|
||||
|
||||
@Test(groups = { "serialization-hostile" })
|
||||
public void testSequentialShortCircuitTerminal() {
|
||||
// The sorted op for sequential evaluation will buffer all elements when accepting
|
||||
// then at the end sort those elements and push those elements downstream
|
||||
// The sorted op for sequential evaluation will buffer all elements when
|
||||
// accepting then at the end sort those elements and push those elements
|
||||
// downstream
|
||||
// A peek operation is added in-between the sorted() and terminal
|
||||
// operation that counts the number of calls to its consumer and
|
||||
// asserts that the number of calls is at most the required quantity
|
||||
|
||||
List<Integer> l = Arrays.asList(5, 4, 3, 2, 1);
|
||||
|
||||
Function<Integer, Stream<Integer>> knownSize = i -> assertNCallsOnly(
|
||||
l.stream().sorted(), Stream::peek, i);
|
||||
Function<Integer, Stream<Integer>> unknownSize = i -> assertNCallsOnly
|
||||
(unknownSizeStream(l).sorted(), Stream::peek, i);
|
||||
|
||||
// Find
|
||||
assertEquals(l.stream().sorted().findFirst(), Optional.of(1));
|
||||
assertEquals(l.stream().sorted().findAny(), Optional.of(1));
|
||||
assertEquals(unknownSizeStream(l).sorted().findFirst(), Optional.of(1));
|
||||
assertEquals(unknownSizeStream(l).sorted().findAny(), Optional.of(1));
|
||||
assertEquals(knownSize.apply(1).findFirst(), Optional.of(1));
|
||||
assertEquals(knownSize.apply(1).findAny(), Optional.of(1));
|
||||
assertEquals(unknownSize.apply(1).findFirst(), Optional.of(1));
|
||||
assertEquals(unknownSize.apply(1).findAny(), Optional.of(1));
|
||||
|
||||
// Match
|
||||
assertEquals(l.stream().sorted().anyMatch(i -> i == 2), true);
|
||||
assertEquals(l.stream().sorted().noneMatch(i -> i == 2), false);
|
||||
assertEquals(l.stream().sorted().allMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSizeStream(l).sorted().anyMatch(i -> i == 2), true);
|
||||
assertEquals(unknownSizeStream(l).sorted().noneMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSizeStream(l).sorted().allMatch(i -> i == 2), false);
|
||||
assertEquals(knownSize.apply(2).anyMatch(i -> i == 2), true);
|
||||
assertEquals(knownSize.apply(2).noneMatch(i -> i == 2), false);
|
||||
assertEquals(knownSize.apply(2).allMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSize.apply(2).anyMatch(i -> i == 2), true);
|
||||
assertEquals(unknownSize.apply(2).noneMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSize.apply(2).allMatch(i -> i == 2), false);
|
||||
}
|
||||
|
||||
private <T> Stream<T> unknownSizeStream(List<T> l) {
|
||||
@ -199,19 +211,24 @@ public class SortedOpTest extends OpTestCase {
|
||||
public void testIntSequentialShortCircuitTerminal() {
|
||||
int[] a = new int[]{5, 4, 3, 2, 1};
|
||||
|
||||
Function<Integer, IntStream> knownSize = i -> assertNCallsOnly(
|
||||
Arrays.stream(a).sorted(), (s, c) -> s.peek(c::accept), i);
|
||||
Function<Integer, IntStream> unknownSize = i -> assertNCallsOnly
|
||||
(unknownSizeIntStream(a).sorted(), (s, c) -> s.peek(c::accept), i);
|
||||
|
||||
// Find
|
||||
assertEquals(Arrays.stream(a).sorted().findFirst(), OptionalInt.of(1));
|
||||
assertEquals(Arrays.stream(a).sorted().findAny(), OptionalInt.of(1));
|
||||
assertEquals(unknownSizeIntStream(a).sorted().findFirst(), OptionalInt.of(1));
|
||||
assertEquals(unknownSizeIntStream(a).sorted().findAny(), OptionalInt.of(1));
|
||||
assertEquals(knownSize.apply(1).findFirst(), OptionalInt.of(1));
|
||||
assertEquals(knownSize.apply(1).findAny(), OptionalInt.of(1));
|
||||
assertEquals(unknownSize.apply(1).findFirst(), OptionalInt.of(1));
|
||||
assertEquals(unknownSize.apply(1).findAny(), OptionalInt.of(1));
|
||||
|
||||
// Match
|
||||
assertEquals(Arrays.stream(a).sorted().anyMatch(i -> i == 2), true);
|
||||
assertEquals(Arrays.stream(a).sorted().noneMatch(i -> i == 2), false);
|
||||
assertEquals(Arrays.stream(a).sorted().allMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSizeIntStream(a).sorted().anyMatch(i -> i == 2), true);
|
||||
assertEquals(unknownSizeIntStream(a).sorted().noneMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSizeIntStream(a).sorted().allMatch(i -> i == 2), false);
|
||||
assertEquals(knownSize.apply(2).anyMatch(i -> i == 2), true);
|
||||
assertEquals(knownSize.apply(2).noneMatch(i -> i == 2), false);
|
||||
assertEquals(knownSize.apply(2).allMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSize.apply(2).anyMatch(i -> i == 2), true);
|
||||
assertEquals(unknownSize.apply(2).noneMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSize.apply(2).allMatch(i -> i == 2), false);
|
||||
}
|
||||
|
||||
private IntStream unknownSizeIntStream(int[] a) {
|
||||
@ -242,19 +259,24 @@ public class SortedOpTest extends OpTestCase {
|
||||
public void testLongSequentialShortCircuitTerminal() {
|
||||
long[] a = new long[]{5, 4, 3, 2, 1};
|
||||
|
||||
Function<Integer, LongStream> knownSize = i -> assertNCallsOnly(
|
||||
Arrays.stream(a).sorted(), (s, c) -> s.peek(c::accept), i);
|
||||
Function<Integer, LongStream> unknownSize = i -> assertNCallsOnly
|
||||
(unknownSizeLongStream(a).sorted(), (s, c) -> s.peek(c::accept), i);
|
||||
|
||||
// Find
|
||||
assertEquals(Arrays.stream(a).sorted().findFirst(), OptionalLong.of(1));
|
||||
assertEquals(Arrays.stream(a).sorted().findAny(), OptionalLong.of(1));
|
||||
assertEquals(unknownSizeLongStream(a).sorted().findFirst(), OptionalLong.of(1));
|
||||
assertEquals(unknownSizeLongStream(a).sorted().findAny(), OptionalLong.of(1));
|
||||
assertEquals(knownSize.apply(1).findFirst(), OptionalLong.of(1));
|
||||
assertEquals(knownSize.apply(1).findAny(), OptionalLong.of(1));
|
||||
assertEquals(unknownSize.apply(1).findFirst(), OptionalLong.of(1));
|
||||
assertEquals(unknownSize.apply(1).findAny(), OptionalLong.of(1));
|
||||
|
||||
// Match
|
||||
assertEquals(Arrays.stream(a).sorted().anyMatch(i -> i == 2), true);
|
||||
assertEquals(Arrays.stream(a).sorted().noneMatch(i -> i == 2), false);
|
||||
assertEquals(Arrays.stream(a).sorted().allMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSizeLongStream(a).sorted().anyMatch(i -> i == 2), true);
|
||||
assertEquals(unknownSizeLongStream(a).sorted().noneMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSizeLongStream(a).sorted().allMatch(i -> i == 2), false);
|
||||
assertEquals(knownSize.apply(2).anyMatch(i -> i == 2), true);
|
||||
assertEquals(knownSize.apply(2).noneMatch(i -> i == 2), false);
|
||||
assertEquals(knownSize.apply(2).allMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSize.apply(2).anyMatch(i -> i == 2), true);
|
||||
assertEquals(unknownSize.apply(2).noneMatch(i -> i == 2), false);
|
||||
assertEquals(unknownSize.apply(2).allMatch(i -> i == 2), false);
|
||||
}
|
||||
|
||||
private LongStream unknownSizeLongStream(long[] a) {
|
||||
@ -285,19 +307,24 @@ public class SortedOpTest extends OpTestCase {
|
||||
public void testDoubleSequentialShortCircuitTerminal() {
|
||||
double[] a = new double[]{5.0, 4.0, 3.0, 2.0, 1.0};
|
||||
|
||||
Function<Integer, DoubleStream> knownSize = i -> assertNCallsOnly(
|
||||
Arrays.stream(a).sorted(), (s, c) -> s.peek(c::accept), i);
|
||||
Function<Integer, DoubleStream> unknownSize = i -> assertNCallsOnly
|
||||
(unknownSizeDoubleStream(a).sorted(), (s, c) -> s.peek(c::accept), i);
|
||||
|
||||
// Find
|
||||
assertEquals(Arrays.stream(a).sorted().findFirst(), OptionalDouble.of(1));
|
||||
assertEquals(Arrays.stream(a).sorted().findAny(), OptionalDouble.of(1));
|
||||
assertEquals(unknownSizeDoubleStream(a).sorted().findFirst(), OptionalDouble.of(1));
|
||||
assertEquals(unknownSizeDoubleStream(a).sorted().findAny(), OptionalDouble.of(1));
|
||||
assertEquals(knownSize.apply(1).findFirst(), OptionalDouble.of(1));
|
||||
assertEquals(knownSize.apply(1).findAny(), OptionalDouble.of(1));
|
||||
assertEquals(unknownSize.apply(1).findFirst(), OptionalDouble.of(1));
|
||||
assertEquals(unknownSize.apply(1).findAny(), OptionalDouble.of(1));
|
||||
|
||||
// Match
|
||||
assertEquals(Arrays.stream(a).sorted().anyMatch(i -> i == 2.0), true);
|
||||
assertEquals(Arrays.stream(a).sorted().noneMatch(i -> i == 2.0), false);
|
||||
assertEquals(Arrays.stream(a).sorted().allMatch(i -> i == 2.0), false);
|
||||
assertEquals(unknownSizeDoubleStream(a).sorted().anyMatch(i -> i == 2.0), true);
|
||||
assertEquals(unknownSizeDoubleStream(a).sorted().noneMatch(i -> i == 2.0), false);
|
||||
assertEquals(unknownSizeDoubleStream(a).sorted().allMatch(i -> i == 2.0), false);
|
||||
assertEquals(knownSize.apply(2).anyMatch(i -> i == 2.0), true);
|
||||
assertEquals(knownSize.apply(2).noneMatch(i -> i == 2.0), false);
|
||||
assertEquals(knownSize.apply(2).allMatch(i -> i == 2.0), false);
|
||||
assertEquals(unknownSize.apply(2).anyMatch(i -> i == 2.0), true);
|
||||
assertEquals(unknownSize.apply(2).noneMatch(i -> i == 2.0), false);
|
||||
assertEquals(unknownSize.apply(2).allMatch(i -> i == 2.0), false);
|
||||
}
|
||||
|
||||
private DoubleStream unknownSizeDoubleStream(double[] a) {
|
||||
@ -321,4 +348,14 @@ public class SortedOpTest extends OpTestCase {
|
||||
assertSorted(result);
|
||||
assertContentsUnordered(data, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Interpose a consumer that asserts it is called at most N times.
|
||||
*/
|
||||
<T, S extends BaseStream<T, S>, R> S assertNCallsOnly(S s, BiFunction<S, Consumer<T>, S> pf, int n) {
|
||||
AtomicInteger boxedInt = new AtomicInteger();
|
||||
return pf.apply(s, i -> {
|
||||
assertFalse(boxedInt.incrementAndGet() > n, "Intermediate op called more than " + n + " time(s)");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8001533 8004547
|
||||
* @bug 8001533 8004547 8035782
|
||||
* @summary Test launching FX application with java -jar
|
||||
* Test uses main method and blank main method, a jfx app class and an incorrest
|
||||
* jfx app class, a main-class for the manifest, a bogus one and none.
|
||||
@ -373,6 +373,11 @@ public class FXLauncherTest extends TestHelper {
|
||||
System.out.println(tr);
|
||||
throw new Exception("jfxrt.jar is being loaded, it should not be!");
|
||||
}
|
||||
if (!tr.notContains("sun.launcher.LauncherHelper$FXHelper")) {
|
||||
System.out.println("testing for extraneous 'sun.launcher.LauncherHelper$FXHelper'");
|
||||
System.out.println(tr);
|
||||
throw new Exception("FXHelper is being loaded, it should not be!");
|
||||
}
|
||||
for (String p : APP_PARMS) {
|
||||
if (!tr.contains(p)) {
|
||||
System.err.println("ERROR: Did not find "
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user