On Wed, 20 Sep 2023 07:00:23 GMT, Justin Lu <j...@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