src/share/classes/java/time/temporal/ChronoField.java

Print this page

        

*** 70,81 **** import static java.time.temporal.ChronoUnit.WEEKS; import static java.time.temporal.ChronoUnit.YEARS; import java.time.DayOfWeek; import java.time.Instant; import java.time.ZoneOffset; ! import java.time.format.DateTimeBuilder; /** * A standard set of fields. * <p> * This set of fields provide field-based access to manipulate a date, time or date-time. --- 70,83 ---- import static java.time.temporal.ChronoUnit.WEEKS; import static java.time.temporal.ChronoUnit.YEARS; import java.time.DayOfWeek; import java.time.Instant; + import java.time.Year; import java.time.ZoneOffset; ! import java.time.chrono.ChronoLocalDate; ! import java.time.chrono.Chronology; /** * A standard set of fields. * <p> * This set of fields provide field-based access to manipulate a date, time or date-time.
*** 519,528 **** --- 521,547 ---- @Override public TemporalUnit getRangeUnit() { return rangeUnit; } + /** + * Gets the range of valid values for the field. + * <p> + * All fields can be expressed as a {@code long} integer. + * This method returns an object that describes the valid range for that value. + * <p> + * This method returns the range of the field in the ISO-8601 calendar system. + * This range may be incorrect for other calendar systems. + * Use {@link Chronology#range(ChronoField)} to access the correct range + * for a different calendar system. + * <p> + * Note that the result only describes the minimum and maximum valid values + * and it is important not to read too much into them. For example, there + * could be values within the range that are invalid for the field. + * + * @return the range of valid values for the field, not null + */ @Override public ValueRange range() { return range; }
*** 549,558 **** --- 568,582 ---- /** * Checks that the specified value is valid for this field. * <p> * This validates that the value is within the outer range of valid values * returned by {@link #range()}. + * <p> + * This method checks against the range of the field in the ISO-8601 calendar system. + * This range may be incorrect for other calendar systems. + * Use {@link Chronology#range(ChronoField)} to access the correct range + * for a different calendar system. * * @param value the value to check * @return the value that was passed in */ public long checkValidValue(long value) {
*** 563,610 **** * Checks that the specified value is valid and fits in an {@code int}. * <p> * This validates that the value is within the outer range of valid values * returned by {@link #range()}. * It also checks that all valid values are within the bounds of an {@code int}. * * @param value the value to check * @return the value that was passed in */ public int checkValidIntValue(long value) { return range().checkValidIntValue(value, this); } //----------------------------------------------------------------------- @Override ! public boolean doIsSupported(TemporalAccessor temporal) { return temporal.isSupported(this); } @Override ! public ValueRange doRange(TemporalAccessor temporal) { return temporal.range(this); } @Override ! public long doGet(TemporalAccessor temporal) { return temporal.getLong(this); } @SuppressWarnings("unchecked") @Override ! public <R extends Temporal> R doWith(R temporal, long newValue) { return (R) temporal.with(this, newValue); } //----------------------------------------------------------------------- @Override - public boolean resolve(DateTimeBuilder builder, long value) { - return false; // resolve implemented in builder - } - - //----------------------------------------------------------------------- - @Override public String toString() { return getName(); } } --- 587,633 ---- * Checks that the specified value is valid and fits in an {@code int}. * <p> * This validates that the value is within the outer range of valid values * returned by {@link #range()}. * It also checks that all valid values are within the bounds of an {@code int}. + * <p> + * This method checks against the range of the field in the ISO-8601 calendar system. + * This range may be incorrect for other calendar systems. + * Use {@link Chronology#range(ChronoField)} to access the correct range + * for a different calendar system. * * @param value the value to check * @return the value that was passed in */ public int checkValidIntValue(long value) { return range().checkValidIntValue(value, this); } //----------------------------------------------------------------------- @Override ! public boolean isSupportedBy(TemporalAccessor temporal) { return temporal.isSupported(this); } @Override ! public ValueRange rangeRefinedBy(TemporalAccessor temporal) { return temporal.range(this); } @Override ! public long getFrom(TemporalAccessor temporal) { return temporal.getLong(this); } @SuppressWarnings("unchecked") @Override ! public <R extends Temporal> R adjustInto(R temporal, long newValue) { return (R) temporal.with(this, newValue); } //----------------------------------------------------------------------- @Override public String toString() { return getName(); } }