Annotation Type HintValue


@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.

  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    The literal the builder compares against.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Other spellings the builder accepts for this same behaviour.
    How the Settings editor labels this choice, when the wire value is not presentable on its own.
  • Element Details

    • value

      String value
      The literal the builder compares against.
    • accepts

      String[] accepts

      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.

      Default:
      {}
    • label

      String label
      How the Settings editor labels this choice, when the wire value is not presentable on its own.
      Default:
      ""