<i18n dev> RFR: JDK-8316435: sun.util.calendar.CalendarSystem subclassing should be restricted [v5]
Andrey Turbanov
aturbanov at openjdk.org
Wed Sep 20 08:57:44 UTC 2023
On Wed, 20 Sep 2023 07:00:23 GMT, Justin Lu <jlu at openjdk.org> wrote:
>> Please review this PR which restricts sub-classing of the internal calendar system in sun.util.calendar to only the existing implementations. Drive by cleanup included.
>>
>> As the implementation is long-standing and complete with no intent for future sub-classing, the CalendarSystem should be made sealed. Modifiers adjusted accordingly (`JulianCalendar.Date` must now have package visibility).
>>
>>
>> This system has the following structure,
>>
>> `CalendarSystem` extended by `AbstractCalendar` extended by `BaseCalendar` extended by
>> (`Gregorian, JulianCalendar, LocalGregorianCalendar`)
>>
>> `CalendarDate` extended by `BaseCalendar.Date` extended by
>> (`Gregorian.Date, ImmutableGregorianDate, JulianCalendar.Date, LocalGregorianCalendar.Date`)
>>
>> Additionally, CalendarUtils was made `final`, as it is a utility class composed of static util methods.
>
> Justin Lu has updated the pull request incrementally with two additional commits since the last revision:
>
> - cleanup CalendarDate after revert
> - Revert "Replace sprintf0d with Formatter"
>
> This reverts commit 84a346aed2be262b717f82fbbc32a4ed0323bccc.
src/java.base/share/classes/sun/util/calendar/CalendarDate.java line 63:
> 61: */
> 62: public sealed abstract class CalendarDate implements Cloneable
> 63: permits BaseCalendar.Date {
Can we just merge `CalendarDate` and `BaseCalendar.Date` to be the one class?
I think it will greatly simplify the code.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15803#discussion_r1331283073
More information about the i18n-dev
mailing list