src/share/classes/java/time/chrono/IsoEra.java

Print this page

        

*** 57,91 **** * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ! package java.time.temporal; - import static java.time.temporal.ChronoField.ERA; import java.time.DateTimeException; ! import java.time.format.DateTimeFormatterBuilder; ! import java.time.format.TextStyle; ! import java.util.Locale; /** * An era in the ISO calendar system. * <p> * The ISO-8601 standard does not define eras. * A definition has therefore been created with two eras - 'Current era' (CE) for * years from 0001-01-01 (ISO) and 'Before current era' (BCE) for years before that. * <p> ! * <b>Do not use {@code ordinal()} to obtain the numeric representation of {@code ISOEra}. * Use {@code getValue()} instead.</b> * * <h3>Specification for implementors</h3> * This is an immutable and thread-safe enum. * * @since 1.8 */ ! enum ISOEra implements Era<ISOChrono> { /** * The singleton instance for the era BCE, 'Before Current Era'. * The 'ISO' part of the name emphasizes that this differs from the BCE * era in the Gregorian calendar system. --- 57,88 ---- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ! package java.time.chrono; import java.time.DateTimeException; ! import java.time.LocalDate; /** * An era in the ISO calendar system. * <p> * The ISO-8601 standard does not define eras. * A definition has therefore been created with two eras - 'Current era' (CE) for * years from 0001-01-01 (ISO) and 'Before current era' (BCE) for years before that. * <p> ! * <b>Do not use {@code ordinal()} to obtain the numeric representation of {@code IsoEra}. * Use {@code getValue()} instead.</b> * * <h3>Specification for implementors</h3> * This is an immutable and thread-safe enum. * * @since 1.8 */ ! enum IsoEra implements Era { /** * The singleton instance for the era BCE, 'Before Current Era'. * The 'ISO' part of the name emphasizes that this differs from the BCE * era in the Gregorian calendar system.
*** 100,119 **** */ CE; //----------------------------------------------------------------------- /** ! * Obtains an instance of {@code ISOEra} from an {@code int} value. * <p> ! * {@code ISOEra} is an enum representing the ISO eras of BCE/CE. * This factory allows the enum to be obtained from the {@code int} value. * * @param era the BCE/CE value to represent, from 0 (BCE) to 1 (CE) * @return the era singleton, not null * @throws DateTimeException if the value is invalid */ ! public static ISOEra of(int era) { switch (era) { case 0: return BCE; case 1: return CE; --- 97,116 ---- */ CE; //----------------------------------------------------------------------- /** ! * Obtains an instance of {@code IsoEra} from an {@code int} value. * <p> ! * {@code IsoEra} is an enum representing the ISO eras of BCE/CE. * This factory allows the enum to be obtained from the {@code int} value. * * @param era the BCE/CE value to represent, from 0 (BCE) to 1 (CE) * @return the era singleton, not null * @throws DateTimeException if the value is invalid */ ! public static IsoEra of(int era) { switch (era) { case 0: return BCE; case 1: return CE;
*** 134,204 **** public int getValue() { return ordinal(); } @Override ! public ISOChrono getChrono() { ! return ISOChrono.INSTANCE; } // JDK8 default methods: //----------------------------------------------------------------------- @Override ! public ChronoLocalDate<ISOChrono> date(int year, int month, int day) { ! return getChrono().date(this, year, month, day); } @Override ! public ChronoLocalDate<ISOChrono> dateYearDay(int year, int dayOfYear) { ! return getChrono().dateYearDay(this, year, dayOfYear); ! } ! ! //----------------------------------------------------------------------- ! @Override ! public boolean isSupported(TemporalField field) { ! if (field instanceof ChronoField) { ! return field == ERA; ! } ! return field != null && field.doIsSupported(this); ! } ! ! @Override ! public ValueRange range(TemporalField field) { ! if (field == ERA) { ! return field.range(); ! } else if (field instanceof ChronoField) { ! throw new DateTimeException("Unsupported field: " + field.getName()); ! } ! return field.doRange(this); ! } ! ! @Override ! public int get(TemporalField field) { ! if (field == ERA) { ! return getValue(); ! } ! return range(field).checkValidIntValue(getLong(field), field); ! } ! ! @Override ! public long getLong(TemporalField field) { ! if (field == ERA) { ! return getValue(); ! } else if (field instanceof ChronoField) { ! throw new DateTimeException("Unsupported field: " + field.getName()); ! } ! return field.doGet(this); ! } ! ! //------------------------------------------------------------------------- ! @Override ! public Temporal adjustInto(Temporal temporal) { ! return temporal.with(ERA, getValue()); ! } ! ! //----------------------------------------------------------------------- ! @Override ! public String getText(TextStyle style, Locale locale) { ! return new DateTimeFormatterBuilder().appendText(ERA, style).toFormatter(locale).print(this); } } --- 131,152 ---- public int getValue() { return ordinal(); } @Override ! public IsoChronology getChronology() { ! return IsoChronology.INSTANCE; } // JDK8 default methods: //----------------------------------------------------------------------- @Override ! public LocalDate date(int year, int month, int day) { ! return getChronology().date(this, year, month, day); } @Override ! public LocalDate dateYearDay(int year, int dayOfYear) { ! return getChronology().dateYearDay(this, year, dayOfYear); } }