166e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilsonpackage javax.annotation.meta;
266e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson
366e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson/**
466e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson * Used to describe the relationship between a qualifier T and the set of values
566e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson * S possible on an annotated element.
666e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson *
766e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson * In particular, an issues should be reported if an ALWAYS or MAYBE value is
866e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson * used where a NEVER value is required, or if a NEVER or MAYBE value is used
966e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson * where an ALWAYS value is required.
1066e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson *
1166e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson *
1266e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson */
1366e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilsonpublic enum When {
1466e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson    /** S is a subset of T */
1566e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson    ALWAYS,
1666e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson    /** nothing definitive is known about the relation between S and T */
1766e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson    UNKNOWN,
1866e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson    /** S intersection T is non empty and S - T is nonempty */
1966e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson    MAYBE,
2066e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson    /** S intersection T is empty */
2166e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson    NEVER;
2266e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson
2366e84b9ff30de7c75b510cb9117205368cf5bd25Jesse Wilson}
24