< prev index next >
src/java.compiler/share/classes/javax/annotation/processing/Processor.java
Print this page
*** 113,123 ****
* <p>An annotation type is considered present if there is at least
* one annotation of that type present on an element enclosed within
* the root elements of a round. For this purpose, a type parameter is
* considered to be enclosed by its {@linkplain
* TypeParameterElement#getGenericElement generic
! * element}. Annotations on {@linkplain
* java.lang.annotation.ElementType#TYPE_USE type uses}, as opposed to
* annotations on elements, are ignored when computing whether or not
* an annotation type is present.
*
* <p>An annotation is present if it meets the definition of being
--- 113,133 ----
* <p>An annotation type is considered present if there is at least
* one annotation of that type present on an element enclosed within
* the root elements of a round. For this purpose, a type parameter is
* considered to be enclosed by its {@linkplain
* TypeParameterElement#getGenericElement generic
! * element}.
!
! * For this purpose, a top-level type is <em>not</em> considered to be
! * enclosed by its enclosing package. A root element representing a
! * package is created when a {@code package-info} file is processed.
! * Likewise, for this purpose, a package is <em>not</em> considered to
! * be enclosed by its enclosing named module (if any). A root element
! * representing a module is created when a {@code module-info} file is
! * processed.
!
! * Annotations on {@linkplain
* java.lang.annotation.ElementType#TYPE_USE type uses}, as opposed to
* annotations on elements, are ignored when computing whether or not
* an annotation type is present.
*
* <p>An annotation is present if it meets the definition of being
*** 233,258 ****
* Returns the names of the annotation types supported by this
* processor. An element of the result may be the canonical
* (fully qualified) name of a supported annotation type.
* Alternately it may be of the form "<tt><i>name</i>.*</tt>"
* representing the set of all annotation types with canonical
! * names beginning with "<tt><i>name.</i></tt>". Finally, {@code
! * "*"} by itself represents the set of all annotation types,
! * including the empty set. Note that a processor should not
! * claim {@code "*"} unless it is actually processing all files;
! * claiming unnecessary annotations may cause a performance
! * slowdown in some environments.
*
* <p>Each string returned in the set must be accepted by the
* following grammar:
*
* <blockquote>
* <dl>
* <dt><i>SupportedAnnotationTypeString:</i>
! * <dd><i>TypeName</i> <i>DotStar</i><sub><i>opt</i></sub>
* <dd><tt>*</tt>
*
* <dt><i>DotStar:</i>
* <dd><tt>.</tt> <tt>*</tt>
* </dl>
* </blockquote>
*
--- 243,280 ----
* Returns the names of the annotation types supported by this
* processor. An element of the result may be the canonical
* (fully qualified) name of a supported annotation type.
* Alternately it may be of the form "<tt><i>name</i>.*</tt>"
* representing the set of all annotation types with canonical
! * names beginning with "<tt><i>name.</i></tt>".
! *
! * In either of those cases, the name of the annotation type can be
! * optionally be preceded by a module name followed by a {@code
! * "/"} character. For example, if a processor supports {@code
! * "a.B"}, this can include multiple annotation types named {@code
! * a.B} which reside in different modules. To only support {@code
! * a.B} in the {@code Foo} module, instead use {@code "Foo/a.B"}.
! *
! * Finally, {@code "*"} by itself represents the set of all
! * annotation types, including the empty set. Note that a
! * processor should not claim {@code "*"} unless it is actually
! * processing all files; claiming unnecessary annotations may
! * cause a performance slowdown in some environments.
*
* <p>Each string returned in the set must be accepted by the
* following grammar:
*
* <blockquote>
* <dl>
* <dt><i>SupportedAnnotationTypeString:</i>
! * <dd><i>ModulePrefix</i><sub><i>opt</i></sub> <i>TypeName</i> <i>DotStar</i><sub><i>opt</i></sub>
* <dd><tt>*</tt>
*
+ * <dt><i>ModulePrefix:</i>
+ * <dd><i>TypeName</i> <tt>/</tt>
+ * </dl>
+ *
* <dt><i>DotStar:</i>
* <dd><tt>.</tt> <tt>*</tt>
* </dl>
* </blockquote>
*
< prev index next >