javax.annotation.meta
Annotation Type Exhaustive


@Documented
@Retention(value=RUNTIME)
public @interface Exhaustive

This annotation can be applied to the value() element of an annotation that is annotated as a TypeQualifier. This is only appropriate if the value field returns a value that is an Enumeration. Applications of the type qualifier with different values are exclusive, and the enumeration is an exhaustive list of the possible values. <<<<<<< .mine For example, the following defines a type qualifier such that if you know a value is neither &#064;Foo(Color.Red) or &#064;Foo(Color.Blue), then the value must be &#064;Foo(Color.Green). And if you know it is &#064;Foo(Color.Green), you know it cannot be &#064;Foo(Color.Red) or &#064;Foo(Color.Blue) ======= For example, the following defines a type qualifier such that if you know a value is neither @Foo(Color.Red) or @Foo(Color.Blue), then the value must be @Foo(Color.Green). And if you know it is @Foo(Color.Green), you know it cannot be @Foo(Color.Red) or @Foo(Color.Blue) >>>>>>> .r47 @TypeQualifier @interface Foo { enum Color {RED, BLUE, GREEN}; @Exhaustive Color value(); }