RoundEnvironment (Java SE 9 & JDK 9 )
Keywords: javax.annotation.processing.RoundEnvironment interface

Module java.compiler
Package javax.annotation.processing

## Interface RoundEnvironment

-     public interface RoundEnvironment

  An annotation processing tool framework will provide an annotation processor with an object implementing this interface so that the processor can query for information about a round of annotation processing.
  Since:
    1.6

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `errorRaised​()` | Returns `true` if an error was raised in the prior round of processing; returns `false` otherwise.
    `Set<? extends Element>` | `getElementsAnnotatedWith​(Class<? extends Annotation> a)` | Returns the elements annotated with the given annotation type.
    `Set<? extends Element>` | `getElementsAnnotatedWith​(TypeElement a)` | Returns the elements annotated with the given annotation type.
    `default Set<? extends Element>` | `getElementsAnnotatedWithAny​(Set<Class<? extends Annotation>> annotations)` | Returns the elements annotated with one or more of the given annotation types.
    `default Set<? extends Element>` | `getElementsAnnotatedWithAny​(TypeElement... annotations)` | Returns the elements annotated with one or more of the given annotation types.
    `Set<? extends Element>` | `getRootElements​()` | Returns the root elements for annotation processing generated by the prior round.
    `boolean` | `processingOver​()` | Returns `true` if types generated by this round will not be subject to a subsequent round of annotation processing; returns `false` otherwise.

- - ### Method Detail

    - #### processingOver

          boolean processingOver​()

      Returns `true` if types generated by this round will not be subject to a subsequent round of annotation processing; returns `false` otherwise.
      Returns:
        `true` if types generated by this round will not be subject to a subsequent round of annotation processing; returns `false` otherwise

    - #### errorRaised

          boolean errorRaised​()

      Returns `true` if an error was raised in the prior round of processing; returns `false` otherwise.
      Returns:
        `true` if an error was raised in the prior round of processing; returns `false` otherwise

    - #### getRootElements

          Set<? extends Element> getRootElements​()

      Returns the root elements for annotation processing generated by the prior round.
      Returns:
        the root elements for annotation processing generated by the prior round, or an empty set if there were none

    - #### getElementsAnnotatedWith

          Set<? extends Element> getElementsAnnotatedWith​(TypeElement a)

      Returns the elements annotated with the given annotation type. The annotation may appear directly or be inherited. Only package elements, module elements, and type elements included in this round of annotation processing, or declarations of members, constructors, parameters, or type parameters declared within those, are returned. Included type elements are root types and any member types nested within them. Elements of a package are not considered included simply because a `package-info` file for that package was created. Likewise, elements of a module are not considered included simply because a `module-info` file for that module was created
      Parameters:
        `a` - annotation type being requested
      Returns:
        the elements annotated with the given annotation type, or an empty set if there are none
      Throws:
        `IllegalArgumentException` - if the argument does not represent an annotation type

    - #### getElementsAnnotatedWithAny

          default Set<? extends Element> getElementsAnnotatedWithAny​(TypeElement... annotations)

      Returns the elements annotated with one or more of the given annotation types.
      API Note:
        This method may be useful when processing repeating annotations by looking for an annotation type and its containing annotation type at the same time.
      Implementation Requirements:
        The default implementation of this method creates an empty result set, iterates over the annotations in the argument array calling `getElementsAnnotatedWith(TypeElement)` on each annotation and adding those results to the result set. Finally, the contents of the result set are returned as an unmodifiable set.
      Parameters:
        `annotations` - annotation types being requested
      Returns:
        the elements annotated with one or more of the given annotation types, or an empty set if there are none
      Throws:
        `IllegalArgumentException` - if the any elements of the argument set do not represent an annotation type
      Since:
        9
      See The Java™ Language Specification:
        9.6.3 Repeatable Annotation Types

    - #### getElementsAnnotatedWith

          Set<? extends Element> getElementsAnnotatedWith​(Class<? extends Annotation> a)

      Returns the elements annotated with the given annotation type. The annotation may appear directly or be inherited. Only package elements, module elements, and type elements included in this round of annotation processing, or declarations of members, constructors, parameters, or type parameters declared within those, are returned. Included type elements are root types and any member types nested within them. Elements in a package are not considered included simply because a `package-info` file for that package was created. Likewise, elements of a module are not considered included simply because a `module-info` file for that module was created
      Parameters:
        `a` - annotation type being requested
      Returns:
        the elements annotated with the given annotation type, or an empty set if there are none
      Throws:
        `IllegalArgumentException` - if the argument does not represent an annotation type

    - #### getElementsAnnotatedWithAny

          default Set<? extends Element> getElementsAnnotatedWithAny​(Set<Class<? extends Annotation>> annotations)

      Returns the elements annotated with one or more of the given annotation types.
      API Note:
        This method may be useful when processing repeating annotations by looking for an annotation type and its containing annotation type at the same time.
      Implementation Requirements:
        The default implementation of this method creates an empty result set, iterates over the annotations in the argument set calling `getElementsAnnotatedWith(Class)` on each annotation and adding those results to the result set. Finally, the contents of the result set are returned as an unmodifiable set.
      Parameters:
        `annotations` - annotation types being requested
      Returns:
        the elements annotated with one or more of the given annotation types, or an empty set if there are none
      Throws:
        `IllegalArgumentException` - if the any elements of the argument set do not represent an annotation type
      Since:
        9
      See The Java™ Language Specification:
        9.6.3 Repeatable Annotation Types