On Tue, 28 Nov 2023 00:51:36 GMT, Andy Goryachev <ango...@openjdk.org> wrote:
>> Provides a public utility method for use by the skins (core and custom) to >> simplify initialization of styleable properties. >> >> >> + /** >> + * Utility method which combines CssMetaData items in one unmodifiable list >> with the size equal to the number >> + * of items it holds (i.e. with no unnecessary overhead). >> + * >> + * @param list the css metadata items, usually from the parent, not nullable >> + * @param items the additional items >> + * @return the unmodifiable list containing all of the items >> + * >> + * @since 22 >> + */ >> + public static List<CssMetaData<? extends Styleable, ?>> initStyleables( >> + List<CssMetaData<? extends Styleable, ?>> list, >> + CssMetaData<? extends Styleable, ?>... items) > > Andy Goryachev has updated the pull request incrementally with one additional > commit since the last revision: > > combine We should also consider changing the specification of `Node.getClassCssMetaData`. It currently says: /** * Gets the {@code CssMetaData} associated with this class, which may include the * {@code CssMetaData} of its superclasses. */ That's strange. A subclass cannot elect to forgo its inherited properties; yet the specification allows it to pretend it doesn't have metadata for its inherited properties. This should be changed in the following ways: 1. A derived class **must** include the metadata of its base class. 2. The inherited metadata **must** come before the new metadata in the list. The specification should also point developers to the new `CssMetaData.combine` API. ------------- PR Comment: https://git.openjdk.org/jfx/pull/1296#issuecomment-1828889945