@Retention(CLASS) @Target({FIELD})
public @interface HintValue
What an enum constant is called on the wire.
The builders compare against a literal, and the constant name is not it:
IOS7 happens to lowercase to ios7, but INTERNAL_ONLY does not lowercase
to internalOnly, and java.version accepts 8, 11, 17 and 21, none
of which can be a constant name at all. A builder handed a value it does not
recognize falls back to its default, so a name-based conversion fails
silently – which is the failure this whole package removes.
Methods
public abstract String value() | The literal the builder compares against. |
public abstract String[] accepts() default {} | Other spellings the builder accepts for this same behaviour. |
public abstract String label() default "" | How the Settings editor labels this choice, when the wire value is not presentable on its own. |
Method details
value
public abstract String value()accepts
public abstract String[] accepts() default {}Other spellings the builder accepts for this same behaviour.
flat and ios7 are one theme, and a properties file may say either.
They are not separate constants – one behaviour, one constant, or the
annotation asks a question with no right answer – so the alternatives
live here, and cn1:migrate-build-hints uses them to turn whichever
spelling a project wrote into the constant it means.
label
public abstract String label() default ""