On Fri, 24 Nov 2023 05:36:07 GMT, Michael Strauß <mstra...@openjdk.org> wrote:
>> Please read [this >> document](https://gist.github.com/mstr2/9f46f92c98d3c86aa6a0b4224a9a6548) >> for an introduction to the Platform Preferences API, and how it interacts >> with the proposed style theme and stage appearance features. > > Michael Strauß has updated the pull request incrementally with one additional > commit since the last revision: > > flip S and T Marked as reviewed by jhendrikx (Committer). modules/javafx.graphics/src/main/java/com/sun/glass/ui/Application.java line 762: > 760: * > 761: * @implSpec Implementations should either return an immutable map, > or give up ownership > 762: * of the returned map. edit: I just noticed this isn't public API, so I guess it is less important: --- I'm not much of a fan of the wording "should assume", the documentation should be clear what you get. Stream#toList for example says something like: > The returned List is unmodifiable; calls to any mutator method will always > cause UnsupportedOperationException to be thrown. There are no guarantees on > the implementation type or serializability of the returned List. In our case here, if we don't want to straight up say it is always immutable, I would go with wording that says it is a snapshot and won't be updated. I'd also remove the impl spec, as it has no choice to use a copy/immutable map now to adhere to the contract. Suggestion: * Returns the current set of platform properties as a map of platform-specific keys to * arbitrary values. This is a snapshot, and won't be updated. There are no guarantees on * the implementation type, modifiability or serializability of the returned {@code Map}. modules/javafx.graphics/src/main/java/com/sun/glass/ui/Application.java line 770: > 768: > 769: /** > 770: * Returns a map of platform-specific preference keys to well-known > keys. Not a fan of the wording "well-known keys". They're platform independent keys as JavaFX defines them. Suggestions "JavaFX keys", "JavaFX standard keys", "FX keys, which are platform independent keys defined by JavaFX". modules/javafx.graphics/src/main/java/com/sun/glass/ui/Application.java line 793: > 791: * Returns a mapping of platform-specific keys to the types of their > values. > 792: * Polymorphic types are supported by specifying the common base > type; for example, a key can > 793: * be mapped to {@code Paint.class} to support any type of paint. May want to search for mentions of `Paint` now that its removed, and use a different example here. modules/javafx.graphics/src/main/java/com/sun/glass/ui/Application.java line 797: > 795: * Implementors must keep this map in sync with the mappings > reported by the native Glass toolkit. > 796: * If a native toolkit reports mappings for keys that are not > contained in this map, the typed getters > 797: * in {@link javafx.application.Platform.Preferences} might not > throw IllegalArgumentException as Suggestion: * in {@link javafx.application.Platform.Preferences} might not throw {@code IllegalArgumentException} as modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/GtkApplication.java line 476: > 474: @Override > 475: public Map<String, String> getPlatformKeyMappings() { > 476: return Map.of( IMHO this should be returned from a `private static final` modules/javafx.graphics/src/main/java/com/sun/glass/ui/gtk/GtkApplication.java line 485: > 483: @Override > 484: public Map<String, Class<?>> getPlatformKeys() { > 485: return Map.ofEntries( IMHO this should be returned from a `private static final` Same for the other two `MacApplication`, `WinApplication`. modules/javafx.graphics/src/main/java/com/sun/javafx/application/preferences/PlatformPreferences.java line 314: > 312: > 313: // Assuming S is a class type: > 314: private boolean isClassConvertible(Class<?> S, Class<?> T) { Locals here don't follow the Java naming conventions, which explains why the code is somewhat confusing to read. Same for the other functions. ------------- PR Review: https://git.openjdk.org/jfx/pull/1014#pullrequestreview-1747775381 PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1404259619 PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1404262597 PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1404241920 PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1404242642 PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1404267468 PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1404267556 PR Review Comment: https://git.openjdk.org/jfx/pull/1014#discussion_r1404272681