Qualifier
Date: 2015-09-10

javax.inject

## Annotation Type Qualifier

-     @Target(value=ANNOTATION_TYPE)
      @Retention(value=RUNTIME)
      @Documented
      public @interface Qualifier

  Identifies qualifier annotations. Anyone can define a new qualifier. A qualifier annotation:
  - is annotated with `@Qualifier`, `@Retention(RUNTIME)`, and typically `@Documented`.
  - can have attributes.
  - may be part of the public API, much like the dependency type, but unlike implementation types which needn't be part of the public API.
  - may have restricted usage if annotated with `@Target`. While this specification covers applying qualifiers to fields and parameters only, some injector configurations might use qualifier annotations in other places (on methods or classes for example).

  For example:

         @java.lang.annotation.Documented
         @java.lang.annotation.Retention(RUNTIME)
         @javax.inject.Qualifier
         public @interface Leather {
           Color color() default Color.TAN;
           public enum Color { RED, BLACK, TAN }
         }

  See Also:
    `@Named`