Annotation Type ReservedSubclassing
@Target(TYPE) @Documented public @interface ReservedSubclassingIndicates that subclassing this type is not publicly supported API. Abstract methods may be added or removed at any time, which could break binary compatibility with existing implementors. Protected methods are also part of the private API of this type.
The API that is not inheritance-specific (unless noted otherwise, all public members), is still public API and will remain binary- compatible between major releases.
Types tagged with this annotation will remain supported until 7.0.0, at which point no guarantees will be maintained about the stability of the inheritance hierarchy for external clients.
This should be used for example for base rule classes that are meant to be used in PMD only, or for AST-related interfaces and abstract classes.