[jfx17] RFR: 8250590: Classes and methods in the javafx.css package are missing documentation
Kevin Rushforth
kcr at openjdk.java.net
Mon Jul 26 20:09:38 UTC 2021
On Mon, 26 Jul 2021 13:55:45 GMT, Ajit Ghaisas <aghaisas at openjdk.org> wrote:
> This PR corrects/adds missing documentation for classes in javafx.css package.
I applied the patch and confirm that there are no more "missing comments" warnings for the `javafx.css` package.
The docs look reasonable in general. I did note a few examples of usage patterns that should be fixed globally. Most of these fell into the following general categories.
1. The body of the javadoc comments for a class, method, etc., should be one or more complete sentences starting with a capital letter and ending with a period.
2. The text following `@return` and `@param` typically starts with a lower-case letter and does not end with a period.
3. When referring to a class name, method name, or formal parameter name, we usually use `{@code ... }` style or else separate words that are all lower-case. For example, either `{@code ParsedValue}` or `parsed value` is fine (but not `ParsedValue`).
In addition to noting one or two examples of each of the above, I left a few random inline comments.
A second pair of eyes would be good for these changes.
modules/javafx.graphics/src/main/java/javafx/css/CssParser.java line 4724:
> 4722:
> 4723: /**
> 4724: * List of errors that may have occurred during css processing.
Maybe `Returns a list of errors...`? Also, CSS should probably be all-caps for consistency.
modules/javafx.graphics/src/main/java/javafx/css/CssParser.java line 4725:
> 4723: /**
> 4724: * List of errors that may have occurred during css processing.
> 4725: * @return An {@code ObservableList} of {@code ParseError}
We typically start the text following `@return` or `@param` with a lower-case letter. So: `an ...`
modules/javafx.graphics/src/main/java/javafx/css/CssParser.java line 4739:
> 4737: public static class ParseError {
> 4738:
> 4739: /**
Can you also add a one-sentence description, something like: `Returns the error message.`?
modules/javafx.graphics/src/main/java/javafx/css/CssParser.java line 4740:
> 4738:
> 4739: /**
> 4740: * @return The error message from the CSS code.
We typically start with a lower can letter and omit the period at the end of `@return` or `@param`. Also, I'm not sure that "from the CSS code" is needed. So maybe:
* @return the error message
modules/javafx.graphics/src/main/java/javafx/css/CssParser.java line 4748:
> 4746: /**
> 4747: * Constructs a {@code ParseError} object with given message.
> 4748: * @param message message
Maybe "the message"?
modules/javafx.graphics/src/main/java/javafx/css/CssParser.java line 4835:
> 4833: /**
> 4834: * Constructs a {@code PropertySetError} object.
> 4835: * @param styleableProperty css meta data
css -> CSS
modules/javafx.graphics/src/main/java/javafx/css/Declaration.java line 36:
> 34:
> 35: /**
> 36: * This class serves as a container of CSS-property and it's value.
`CSS-property` should not be hyphenated, and it should be _a_ CSS property. Also: `it's` --> `its`.
modules/javafx.graphics/src/main/java/javafx/css/Declaration.java line 67:
> 65: /**
> 66: * Get the parsed value
> 67: * @return ParsedValue
Either `@return the {@code ParsedValue}` or `@return the parsed value`
modules/javafx.graphics/src/main/java/javafx/css/Declaration.java line 74:
> 72:
> 73: /**
> 74: * Get the CSS property name
End with a period. And we usually would say "Gets" rather than "Get" here.
modules/javafx.graphics/src/main/java/javafx/css/Declaration.java line 75:
> 73: /**
> 74: * Get the CSS property name
> 75: * @return css-property
For consistency, I'd say: `@return the CSS property name`
modules/javafx.graphics/src/main/java/javafx/css/Declaration.java line 108:
> 106: }
> 107: /**
> 108: * One declaration is equal to another regardless of the {@code Rule} to which
This is a good second sentence. The first sentence should probably be copied from the `Object::equals` method:
Indicates whether some other object is "equal to" this one.
Since this is pre-existing, it would be fine to not do this as part of this bug.
modules/javafx.graphics/src/main/java/javafx/css/Declaration.java line 140:
> 138: /**
> 139: * Returns the hash code of this {@code Declaration}
> 140: */
Since there is nothing extra to say beyond what the superclass says, you can instead replace this with:
/** {@inheritDoc} */
If you do want to add an explicit javadoc comment here, you need an `@return` tag.
modules/javafx.graphics/src/main/java/javafx/css/Declaration.java line 151:
> 149: /**
> 150: * Returns a String version of this {@code Declaration}
> 151: */
Same comment as for `hashCode`. Probably best to use use:
/** {@inheritDoc} */
modules/javafx.graphics/src/main/java/javafx/css/PseudoClass.java line 85:
> 83: /**
> 84: * Gets the {@code PseudoClass} instance for a given pseudo class name.
> 85: * Note : There is only one PseudoClass instance for a given pseudo class name.
Maybe put this in a new paragraph? Also, can you remove the space before the `:`?
modules/javafx.graphics/src/main/java/javafx/css/SizeUnits.java line 38:
> 36:
> 37: /**
> 38: * Percentage
Maybe make this a complete sentence by saying something like `Represents a size as a percentage.` for this one? For the concrete units, something like `Represents a size in inches.` (for example).
modules/javafx.graphics/src/main/java/javafx/css/SizeUnits.java line 138:
> 136:
> 137: /**
> 138: * EX
What does "EX" specify? Since it isn't an obvious unit type, it would be good to define it.
modules/javafx.graphics/src/main/java/javafx/css/StyleClass.java line 28:
> 26:
> 27: /**
> 28: * A class that contains StyleClass information
Best to use `{@code StyleClass}`. Also needs to end with a period.
modules/javafx.graphics/src/main/java/javafx/css/StyleClass.java line 45:
> 43: /**
> 44: * Returns the name of StyleClass.
> 45: * @return the style-class
`StyleClass` --> `the {@code StyleClass)` or `the style-class`.
modules/javafx.graphics/src/main/java/javafx/css/StyleClass.java line 60:
> 58:
> 59: /**
> 60: * Returns the index of this StyleClass in styleClasses list.
Where is the `styleClasses` list defined? This may be beyond the scope of this fix, so a follow-on issue could be filed. At the least, you should add "the" before "styleClasses".
modules/javafx.graphics/src/main/java/javafx/css/converter/EffectConverter.java line 83:
> 81: /**
> 82: * Converter to convert DropShadow {@code Effect}
> 83: * @since 9
Good catch on the `@since 9` tag. I'm a little surprised it doesn't inherit the `@since` from the enclosing class if not present in the nested class, but I can see that it doesn't. So we'll to check the docs of all nested classes to make sure that there aren't any missing.
-------------
PR: https://git.openjdk.java.net/jfx/pull/589
More information about the openjfx-dev
mailing list