The javac tool implements the annotation processing API, among other interfaces. There are various implementation-specific details of that implementation that would be helpful to users to document. Those details include, but are not limited to:
* Documentation on how System.err and System.out are used for messages
* A way to determine if a source version is supported or not
* For elements/symbols, instanceof is reliable to determine the kind of element:
"To implement operations based on the class of an Element object, either use a visitor or use the result of the getKind() method. Using instanceof is not necessarily a reliable idiom for determining the effective class of an object in this modeling hierarchy since an implementation may choose to have a single object implement multiple Element subinterfaces."
* Documentation module determination for Filer.createSourceFile:
Implementation Note:
In the reference implementation, if the annotation processing tool is processing a single module M, then M is used as the module for files created without an explicit module prefix. If the tool is processing multiple modules, and Elements.getPackageElement(package-of(name)) returns a package, the module that owns the returned package is used as the target module. A separate option may be used to provide the target module if it cannot be determined using the above rules.
* Documentation general Path (classpath, module path, etc.) configuration
* Documentation processing environment getOptions, protocol using -A option, etc.
* multi-threading support / status
* Documentation on how System.err and System.out are used for messages
* A way to determine if a source version is supported or not
* For elements/symbols, instanceof is reliable to determine the kind of element:
"To implement operations based on the class of an Element object, either use a visitor or use the result of the getKind() method. Using instanceof is not necessarily a reliable idiom for determining the effective class of an object in this modeling hierarchy since an implementation may choose to have a single object implement multiple Element subinterfaces."
* Documentation module determination for Filer.createSourceFile:
Implementation Note:
In the reference implementation, if the annotation processing tool is processing a single module M, then M is used as the module for files created without an explicit module prefix. If the tool is processing multiple modules, and Elements.getPackageElement(package-of(name)) returns a package, the module that owns the returned package is used as the target module. A separate option may be used to provide the target module if it cannot be determined using the above rules.
* Documentation general Path (classpath, module path, etc.) configuration
* Documentation processing environment getOptions, protocol using -A option, etc.
* multi-threading support / status
- relates to
-
JDK-8280826 Document set of strings javac recognizes for SuppressWarnings
-
- Resolved
-