src/share/classes/java/time/chrono/ThaiBuddhistEra.java
Print this page
*** 22,31 ****
--- 22,36 ----
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file:
+ *
* Copyright (c) 2012, Stephen Colebourne & Michael Nascimento Santos
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
*** 54,147 ****
* 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.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.time.DateTimeException;
/**
* An era in the Thai Buddhist calendar system.
* <p>
* The Thai Buddhist calendar system has two eras.
* <p>
! * <b>Do not use ordinal() to obtain the numeric representation of a ThaiBuddhistEra
! * instance. Use getValue() instead.</b>
*
* <h3>Specification for implementors</h3>
* This is an immutable and thread-safe enum.
*
* @since 1.8
*/
! enum ThaiBuddhistEra implements Era {
/**
* The singleton instance for the era before the current one, 'Before Buddhist Era',
! * which has the value 0.
*/
BEFORE_BE,
/**
! * The singleton instance for the current era, 'Buddhist Era', which has the value 1.
*/
BE;
//-----------------------------------------------------------------------
/**
! * Obtains an instance of {@code ThaiBuddhistEra} from a value.
* <p>
! * The current era (from ISO year -543 onwards) has the value 1
! * The previous era has the value 0.
*
* @param thaiBuddhistEra the era to represent, from 0 to 1
* @return the BuddhistEra singleton, never null
! * @throws IllegalCalendarFieldValueException if the era is invalid
*/
public static ThaiBuddhistEra of(int thaiBuddhistEra) {
switch (thaiBuddhistEra) {
case 0:
return BEFORE_BE;
case 1:
return BE;
default:
! throw new DateTimeException("Era is not valid for ThaiBuddhistEra");
}
}
//-----------------------------------------------------------------------
/**
! * Gets the era numeric value.
* <p>
! * The current era (from ISO year -543 onwards) has the value 1
! * The previous era has the value 0.
*
* @return the era value, from 0 (BEFORE_BE) to 1 (BE)
*/
@Override
public int getValue() {
return ordinal();
}
- @Override
- public ThaiBuddhistChronology getChronology() {
- return ThaiBuddhistChronology.INSTANCE;
- }
-
- // JDK8 default methods:
- //-----------------------------------------------------------------------
- @Override
- public ThaiBuddhistDate date(int year, int month, int day) {
- return (ThaiBuddhistDate)(getChronology().date(this, year, month, day));
- }
-
- @Override
- public ThaiBuddhistDate dateYearDay(int year, int dayOfYear) {
- return (ThaiBuddhistDate)(getChronology().dateYearDay(this, year, dayOfYear));
- }
-
//-----------------------------------------------------------------------
private Object writeReplace() {
return new Ser(Ser.THAIBUDDHIST_ERA_TYPE, this);
}
--- 59,162 ----
* 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.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.time.DateTimeException;
/**
* An era in the Thai Buddhist calendar system.
* <p>
* The Thai Buddhist calendar system has two eras.
+ * The current era, for years from 1 onwards, is known as the 'Buddhist' era.
+ * All previous years, zero or earlier in the proleptic count or one and greater
+ * in the year-of-era count, are part of the 'Before Buddhist' era.
* <p>
! * <table summary="Buddhist years and eras" cellpadding="2" cellspacing="3" border="0" >
! * <thead>
! * <tr class="tableSubHeadingColor">
! * <th class="colFirst" align="left">year-of-era</th>
! * <th class="colFirst" align="left">era</th>
! * <th class="colFirst" align="left">proleptic-year</th>
! * <th class="colLast" align="left">ISO proleptic-year</th>
! * </tr>
! * </thead>
! * <tbody>
! * <tr class="rowColor">
! * <td>2</td><td>BE</td><td>2</td><td>-542</td>
! * </tr>
! * <tr class="altColor">
! * <td>1</td><td>BE</td><td>1</td><td>-543</td>
! * </tr>
! * <tr class="rowColor">
! * <td>1</td><td>BEFORE_BE</td><td>0</td><td>-544</td>
! * </tr>
! * <tr class="altColor">
! * <td>2</td><td>BEFORE_BE</td><td>-1</td><td>-545</td>
! * </tr>
! * </tbody>
! * </table>
! * <p>
! * <b>Do not use {@code ordinal()} to obtain the numeric representation of {@code ThaiBuddhistEra}.
! * Use {@code getValue()} instead.</b>
*
* <h3>Specification for implementors</h3>
* This is an immutable and thread-safe enum.
*
* @since 1.8
*/
! public enum ThaiBuddhistEra implements Era {
/**
* The singleton instance for the era before the current one, 'Before Buddhist Era',
! * which has the numeric value 0.
*/
BEFORE_BE,
/**
! * The singleton instance for the current era, 'Buddhist Era',
! * which has the numeric value 1.
*/
BE;
//-----------------------------------------------------------------------
/**
! * Obtains an instance of {@code ThaiBuddhistEra} from an {@code int} value.
* <p>
! * {@code ThaiBuddhistEra} is an enum representing the Thai Buddhist eras of BEFORE_BE/BE.
! * This factory allows the enum to be obtained from the {@code int} value.
*
* @param thaiBuddhistEra the era to represent, from 0 to 1
* @return the BuddhistEra singleton, never null
! * @throws DateTimeException if the era is invalid
*/
public static ThaiBuddhistEra of(int thaiBuddhistEra) {
switch (thaiBuddhistEra) {
case 0:
return BEFORE_BE;
case 1:
return BE;
default:
! throw new DateTimeException("Invalid era: " + thaiBuddhistEra);
}
}
//-----------------------------------------------------------------------
/**
! * Gets the numeric era {@code int} value.
* <p>
! * The era BEFORE_BE has the value 0, while the era BE has the value 1.
*
* @return the era value, from 0 (BEFORE_BE) to 1 (BE)
*/
@Override
public int getValue() {
return ordinal();
}
//-----------------------------------------------------------------------
private Object writeReplace() {
return new Ser(Ser.THAIBUDDHIST_ERA_TYPE, this);
}