On Tue, 25 Apr 2023 19:43:29 GMT, Adam Sotona <asot...@openjdk.org> wrote:
>> Constants API already provides models for all loadable constants to help >> programs manipulating class files and modelling bytecode instructions. >> However no models of module and package constants are provided by Constants >> API. Every program manipulating class files must implement own models and >> validation of modules and packages constants. >> >> This pul request adds `java.lang.constant.ModuleDesc` and >> `java.lang.constant.PackageDesc` to the Constants API. >> >> Classfile API will follow up and remove its internal implementations of >> `PackageDesc` and `ModuleDesc`. >> >> Please review this pull request and attached CSR. >> >> Thank you, >> Adam > > Adam Sotona has updated the pull request incrementally with two additional > commits since the last revision: > > - Update ModuleDesc.java > - Update PackageDesc.java I wonder if `packageName()` and `packageInternalName()` methods can simply be `name()` and `internalName()` as the type name is `PackageDesc` and `package` prefix seems to be unnecessary. Similarly, `moduleName()` can be `name()`. Have this be discussed and rejected? src/java.base/share/classes/java/lang/constant/ModuleDesc.java line 32: > 30: * A nominal descriptor for a {@code Module} constant. > 31: * > 32: * @apiNote can drop `@apiNote` as it's not needed to be. `<p>` if you want to a new paragraph. src/java.base/share/classes/java/lang/constant/PackageDesc.java line 32: > 30: * A nominal descriptor for a {@code Package} constant. > 31: * > 32: * @apiNote can drop `@apiNote` as it's not needed to be. `<p>` if you want to a new paragraph. src/java.base/share/classes/java/lang/constant/PackageDesc.java line 51: > 49: * @throws IllegalArgumentException if the name string is not in the > 50: * correct format > 51: * @jls 6.7 Fully Qualified Names and Canonical Names Suggestion: * @jls 6.5.3 Module Names and Package Names src/java.base/share/classes/java/lang/constant/PackageDesc.java line 70: > 68: * @throws IllegalArgumentException if the name string is not in the > 69: * correct format > 70: * @jvms 4.2.1 Binary Class and Interface Names Worth adding `@jvm 4.2.3 Module and Package Names` src/java.base/share/classes/java/lang/constant/PackageDesc.java line 79: > 77: > 78: /** > 79: * Returns the fully qualified (slash-separated) internal package name Suggestion: * Returns the fully qualified (slash-separated) package name in internal form src/java.base/share/classes/java/lang/constant/PackageDesc.java line 82: > 80: * of this {@link PackageDesc}. > 81: * > 82: * @return the package name, or the empty string for the Suggestion: * @return the package name in internal form, or the empty string for the src/java.base/share/classes/java/lang/constant/PackageDesc.java line 89: > 87: > 88: /** > 89: * Returns the fully qualified (dot-separated) binary package name Suggestion: * Returns the fully qualified (dot-separated) package name ------------- PR Review: https://git.openjdk.org/jdk/pull/13615#pullrequestreview-1400784174 PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1177094576 PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1177084404 PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1177085890 PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1177088336 PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1177088970 PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1177089545 PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1177097732