8053918: make the spec for @Documented comprehensible

Reviewed-by: jjg, abuckley
This commit is contained in:
Joe Darcy 2015-05-11 17:54:03 -07:00
parent d31d389d15
commit 7ceb605aa6

View File

@ -26,12 +26,24 @@
package java.lang.annotation; package java.lang.annotation;
/** /**
* Indicates that annotations with a type are to be documented by javadoc * If the annotation {@code @Documented} is present on the declaration
* and similar tools by default. This type should be used to annotate the * of an annotation type <i>A</i>, then any {@code @A} annotation on
* declarations of types whose annotations affect the use of annotated * an element is considered part of the element's public contract.
* elements by their clients. If a type declaration is annotated with *
* Documented, its annotations become part of the public API * In more detail, when an annotation type <i>A</i> is annotated with
* of the annotated elements. * {@code Documented}, the presence and value of annotations of type
* <i>A</i> are a part of the public contract of the elements <i>A</i>
* annotates.
*
* Conversely, if an annotation type <i>B</i> is <em>not</em>
* annotated with {@code Documented}, the presence and value of
* <i>B</i> annotations are <em>not</em> part of the public contract
* of the elements <i>B</i> annotates.
*
* Concretely, if an annotation type is annotated with {@code
* Documented}, by default a tool like javadoc will display
* annotations of that type in its output while annotations of
* annotation types without {@code Documented} will not be displayed.
* *
* @author Joshua Bloch * @author Joshua Bloch
* @since 1.5 * @since 1.5