@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()
The literal the builder compares against.

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 ""
How the Settings editor labels this choice, when the wire value is not presentable on its own.