| package org.checkerframework.common.value.qual; |
| |
| import java.lang.annotation.Documented; |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.RetentionPolicy; |
| import java.lang.annotation.Target; |
| |
| /** |
| * An annotation indicating the possible values for an enum type. If an expression's type has this |
| * annotation, then at run time, the expression evaluates to one of the enum values named by the |
| * arguments. EnumVal uses the simple name of the enum value: the EnumVal type corresponding to |
| * {@code MyEnum.MY_VALUE} is {@code @EnumVal("MY_VALUE")}. |
| * |
| * <p>This annotation is treated as {@link StringVal} internally by the Constant Value Checker. |
| * |
| * @checker_framework.manual #constant-value-checker Constant Value Checker |
| */ |
| @Documented |
| @Retention(RetentionPolicy.RUNTIME) |
| @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) |
| public @interface EnumVal { |
| /** |
| * The simple names of the possible enum values for an expression with the annotated type. |
| * |
| * @return the simple names of the possible enum values for an expression with the annotated type |
| */ |
| String[] value(); |
| } |