Annotated
Date: 2015-09-11

javax.enterprise.inject.spi

## Interface Annotated

- All Known Subinterfaces:
    AnnotatedCallable<X>, AnnotatedConstructor<X>, AnnotatedField<X>, AnnotatedMember<X>, AnnotatedMethod<X>, AnnotatedParameter<X>, AnnotatedType<X>

      public interface Annotated

  Represents a Java program element that can be annotated.

  See Also:
    `AnnotatedElement`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T extends java.lang.annotation.Annotation> T` | `getAnnotation(java.lang.Class<T> annotationType)` Get program element annotation of a certain annotation type.
    `java.util.Set<java.lang.annotation.Annotation>` | `getAnnotations()` Get all annotations of the program element.
    `java.lang.reflect.Type` | `getBaseType()` Get the type of the annotated program element.
    `java.util.Set<java.lang.reflect.Type>` | `getTypeClosure()` Get all types to which the base type should be considered assignable.
    `boolean` | `isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)` Determine if the program element has an annotation of a certain annotation type.

- - ### Method Detail

    - #### getBaseType

          java.lang.reflect.Type getBaseType()

      Get the type of the annotated program element.

      Returns:
        the type of the annotated program element

    - #### getTypeClosure

          java.util.Set<java.lang.reflect.Type> getTypeClosure()

      Get all types to which the base type should be considered assignable.

      Returns:
        a set of all types to which the base type should be considered assignable

    - #### getAnnotation

          <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationType)

      Get program element annotation of a certain annotation type.

      Type Parameters:
        `T` - the type of the annotation
      Parameters:
        `annotationType` - the class of the annotation type
      Returns:
        the program element annotation of the given annotation type, or a null value

    - #### getAnnotations

          java.util.Set<java.lang.annotation.Annotation> getAnnotations()

      Get all annotations of the program element.

      Returns:
        all annotations of the program element, or an empty set if no annotations are present

    - #### isAnnotationPresent

          boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)

      Determine if the program element has an annotation of a certain annotation type.

      Parameters:
        `annotationType` - the annotation type to check for
      Returns:
        `true` if the program element has an annotation of the given annotation type, or `false` otherwise