On Wed, 20 Sep 2023 07:00:23 GMT, Justin Lu <[email protected]> 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