src/share/classes/java/util/JapaneseImperialCalendar.java
Print this page
*** 944,1002 ****
}
set(field, getRolledValue(internalGet(field), amount, min, max));
}
public String getDisplayName(int field, int style, Locale locale) {
! if (!checkDisplayNameParams(field, style, SHORT, LONG, locale,
ERA_MASK|YEAR_MASK|MONTH_MASK|DAY_OF_WEEK_MASK|AM_PM_MASK)) {
return null;
}
int fieldValue = get(field);
// "GanNen" is supported only in the LONG style.
if (field == YEAR
! && (getBaseStyle(style) == SHORT || fieldValue != 1 || get(ERA) == 0)) {
return null;
}
! String name = CalendarDataUtility.retrieveFieldValueName("japanese", field, fieldValue, style, locale);
// If the ERA value is null, then
// try to get its name or abbreviation from the Era instance.
if (name == null && field == ERA && fieldValue < eras.length) {
Era era = eras[fieldValue];
name = (style == SHORT) ? era.getAbbreviation() : era.getName();
}
return name;
}
public Map<String,Integer> getDisplayNames(int field, int style, Locale locale) {
! if (!checkDisplayNameParams(field, style, ALL_STYLES, LONG, locale,
ERA_MASK|YEAR_MASK|MONTH_MASK|DAY_OF_WEEK_MASK|AM_PM_MASK)) {
return null;
}
! Map<String, Integer> names = CalendarDataUtility.retrieveFieldValueNames("japanese", field, style, locale);
// If strings[] has fewer than eras[], get more names from eras[].
if (field == ERA) {
int size = names.size();
if (style == ALL_STYLES) {
! size /= 2; // SHORT and LONG
}
if (size < eras.length) {
int baseStyle = getBaseStyle(style);
for (int i = size; i < eras.length; i++) {
Era era = eras[i];
! if (baseStyle == ALL_STYLES || baseStyle == SHORT) {
names.put(era.getAbbreviation(), i);
}
if (baseStyle == ALL_STYLES || baseStyle == LONG) {
names.put(era.getName(), i);
}
}
}
}
return names;
}
/**
* Returns the minimum value for the given calendar field of this
--- 944,1014 ----
}
set(field, getRolledValue(internalGet(field), amount, min, max));
}
+ @Override
public String getDisplayName(int field, int style, Locale locale) {
! if (!checkDisplayNameParams(field, style, SHORT, NARROW_FORMAT, locale,
ERA_MASK|YEAR_MASK|MONTH_MASK|DAY_OF_WEEK_MASK|AM_PM_MASK)) {
return null;
}
int fieldValue = get(field);
// "GanNen" is supported only in the LONG style.
if (field == YEAR
! && (getBaseStyle(style) != LONG || fieldValue != 1 || get(ERA) == 0)) {
return null;
}
! String name = CalendarDataUtility.retrieveFieldValueName(getCalendarType(), field,
! fieldValue, style, locale);
// If the ERA value is null, then
// try to get its name or abbreviation from the Era instance.
if (name == null && field == ERA && fieldValue < eras.length) {
Era era = eras[fieldValue];
name = (style == SHORT) ? era.getAbbreviation() : era.getName();
}
return name;
}
+ @Override
public Map<String,Integer> getDisplayNames(int field, int style, Locale locale) {
! if (!checkDisplayNameParams(field, style, ALL_STYLES, NARROW_FORMAT, locale,
ERA_MASK|YEAR_MASK|MONTH_MASK|DAY_OF_WEEK_MASK|AM_PM_MASK)) {
return null;
}
! Map<String, Integer> names;
! names = CalendarDataUtility.retrieveFieldValueNames(getCalendarType(), field, style, locale);
// If strings[] has fewer than eras[], get more names from eras[].
+ if (names != null) {
if (field == ERA) {
int size = names.size();
if (style == ALL_STYLES) {
! Set<Integer> values = new HashSet<>();
! // count unique era values
! for (String key : names.keySet()) {
! values.add(names.get(key));
! }
! size = values.size();
}
if (size < eras.length) {
int baseStyle = getBaseStyle(style);
for (int i = size; i < eras.length; i++) {
Era era = eras[i];
! if (baseStyle == ALL_STYLES || baseStyle == SHORT
! || baseStyle == NARROW_FORMAT) {
names.put(era.getAbbreviation(), i);
}
if (baseStyle == ALL_STYLES || baseStyle == LONG) {
names.put(era.getName(), i);
}
}
}
}
+ }
return names;
}
/**
* Returns the minimum value for the given calendar field of this