On Sat, 27 Mar 2021 01:49:38 GMT, Mandy Chung <mch...@openjdk.org> wrote:

>> src/java.management/share/classes/javax/management/MXBean.java line 757:
>> 
>>> 755: 
>>> 756:     <p>If the class is a {@link Record}, its getters are the
>>> 757:       accessors for the record components. Otherwise, the
>> 
>> It may be good to add a link like {@linkplain RecordComponent record 
>> components}
>
> You add record in "Mappings for other types".  I think it deserves a separate 
> section "Mappings for record classes" (maybe after primitive types).   It's 
> useful to add a row for record in the summary table above "Mappings for 
> primitive types"

Link added. With respect to adding a section for records, it's a bit difficult 
to separate that from the "Mapping for other types" without a lot of 
duplication. I can add a row in the summary table, and then add a new section 
"Mapping for records" just before "Mapping for other types", that just gives a 
brief overview and refers to the mapping for other types below. 

Something like this - what do you think?

    <h3 id="records">Mappings for Records</h3>

    <p>A {@linkplain Record record} <em>R</em> whose {@linkplain
      Class#getRecordComponents() components} are
      all convertible to open types, is itself convertible to a
      {@link CompositeType} as follows.
      The type name of this {@code CompositeType}
      is determined by the same <a href="#type-names">type name rules</a>
      defined by the <a href="#composite-map">Mapping for other types</a>
      below. Its getters are the accessors for the {@linkplain
      RecordComponent record components}, and the record is reconstructed
      using its canonical constructor, without needing any annotation.</p>

    <p>A record may also expose additional non-canonical constructors, which
      can be used to reconstruct the record if the composite data does
      not exactly contain all the components expected by the
      canonical constructor. However, in order to be taken into account
      by the MXBean framework, such non-canonical constructors
      need to be annotated with either the {@link ConstructorParameters
      &#64;javax.management.ConstructorParameters} or
     {@code @java.beans.ConstructorProperties} annotation.</p>

    <p>The complete rules for the mapping are detailed as part
      of the <a href="#composite-map">Mapping for other types</a>
      below.</p>

    <h3 id="composite-map">Mappings for other types</h3>

    <p>Given a record, or a Java class or interface <em>J</em> that does not 
match the other
      rules in the table above, the MXBean framework will attempt to map
      it to a {@link CompositeType} as follows.  [....]

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

PR: https://git.openjdk.java.net/jdk/pull/3201

Reply via email to