Please review this PR which restricts sub-classing of the internal calendar 
system in sun.util.calendar to only the existing implementations.

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.

-------------

Commit messages:
 - private constructor in CalendarUtils
 - Make utility class 'CalendarUtils' final
 - Copyright years
 - Seal the rest of the 'CalendarSystem'
 - Clarify public for LCG.date, when other BaseCalendar.date inheritors are 
default
 - Seal BaseCalendar and make inheritors final
 - Seal BaseCalendar.Date and make inheritors final

Changes: https://git.openjdk.org/jdk/pull/15803/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15803&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8316435
  Stats: 40 lines in 9 files changed: 7 ins; 0 del; 33 mod
  Patch: https://git.openjdk.org/jdk/pull/15803.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15803/head:pull/15803

PR: https://git.openjdk.org/jdk/pull/15803

Reply via email to