On Tue, 25 Apr 2023 08:11:24 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 one additional 
> commit since the last revision:
> 
>   added custom toString() methods

A side note: I notice that the type names are linked with `@linkplain` in this 
package mixed with some `@link`.  I'm not sure if it's intentional as type 
names are generally used `@link` or `@code`.

src/java.base/share/classes/java/lang/constant/ModuleDesc.java line 64:

> 62:      * an at-sign in a module name.
> 63:      * </ul>
> 64:      * @param name module name

Suggestion:

     * @param name the module name

src/java.base/share/classes/java/lang/constant/PackageDesc.java line 33:

> 31:  *
> 32:  * <p>To create a {@linkplain PackageDesc} for a package, use {@link #of} 
> or
> 33:  * {@link #ofInternalName(String)}.

Suggestion:

 * <p>To create a {@linkplain PackageDesc} for a package, use the {@link #of} or
 * {@link #ofInternalName(String)} method.

src/java.base/share/classes/java/lang/constant/PackageDesc.java line 44:

> 42:      * given the name of the package, such as {@code "java.lang"}.
> 43:      * <p>
> 44:      * {@jls 13.1}

Do you mean to reference JLS 6.7?

Suggest to move this reference after `throws` in the see also section.

src/java.base/share/classes/java/lang/constant/PackageDesc.java line 46:

> 44:      * {@jls 13.1}
> 45:      *
> 46:      * @param name the fully qualified (dot-separated) binary package name

JLS 13.1 does not describe a package has a binary name.   Is it correct to say 
"binary package name"?

Suggestion:

     * @param name the fully qualified (dot-separated) package name

src/java.base/share/classes/java/lang/constant/PackageDesc.java line 62:

> 60:      * such as {@code "java/lang"}.
> 61:      * <p>
> 62:      * {@jvms 4.2.1} In this internal form, the ASCII periods (.) that 
> normally

Suggest not to copy JVMS 4.2.1 here but instead just add it to see also section.

src/java.base/share/classes/java/lang/constant/PackageDesc.java line 65:

> 63:      * separate the identifiers
> 64:      * which make up the binary name are replaced by ASCII forward 
> slashes (/).
> 65:      * @param name the fully qualified class name, in internal 
> (slash-separated)

Suggestion:

     * @param name the fully qualified package name, in internal 
(slash-separated) form

src/java.base/share/classes/java/lang/constant/PackageDesc.java line 82:

> 80:      *
> 81:      * @return the package name, or the empty string for the
> 82:      * default package

Suggestion:

     * unnamed package

src/java.base/share/classes/java/lang/constant/PackageDesc.java line 91:

> 89:      *
> 90:      * @return the package name, or the empty string for the
> 91:      * default package

Suggestion:

     * unnamed package


See JLS 7.4.2

src/java.base/share/classes/java/lang/constant/package-info.java line 93:

> 91:  *
> 92:  * <p>Other members of this package are {@link 
> java.lang.constant.ModuleDesc}
> 93:  * and  {@link java.lang.constant.PackageDesc}. They represent module and 
> package

Suggestion:

 * <p>Other members of this package are {@link ModuleDesc}
 * and  {@link PackageDesc}. They represent module and package


same package and so no need to qualify.

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

PR Review: https://git.openjdk.org/jdk/pull/13615#pullrequestreview-1398780011
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1176758742
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1176759664
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1176763362
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1176770337
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1176781861
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1176768935
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1176789226
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1176787981
PR Review Comment: https://git.openjdk.org/jdk/pull/13615#discussion_r1176790549

Reply via email to