Module uk.autores
Package uk.autores

Annotation Type Messages


  • @Target({PACKAGE,TYPE})
    @Retention(SOURCE)
    @Repeatable(uk.autores.repeat.RepeatableMessages.class)
    public @interface Messages

    Directive to generate localized format methods from Properties files.

    
         // EXAMPLE ANNOTATION
         // planets.properties
         //   planet-event=At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.
         // planets_de.properties
         //   planet-event=Am {1,time} um {1,date} Uhr gab es {2} auf Planet {0,number,integer}.
         @Messages("planets.properties")
     
    
         // EXAMPLE CODE
         var time = ZonedDateTime.now();
         String event = Planets.planetEvent(locale, 4, time, "an attack");
     

    See Backing a ResourceBundle with Properties Files for more information on localization.

    This annotation is strict by default. This helps build systems detect missing translations and bugs in translated format strings. However, developers are likely add or modify strings during development before translations are available. The missingKey() and incompatibleFormat() properties can be set to Severity.WARN or Severity.IGNORE during development to avoid breaking builds. Create a single static final Severity variable and reference it in annotations to control this globally. Set these to Severity.ERROR prior to release and/or in a "smoke test" branch.

    • Element Detail

      • value

        String[] value
        Resource files.
        Returns:
        resources
        Default:
        {}
      • processing

        Processing processing
        Common processing instructions.
        Returns:
        instruction annotation
        Default:
        @uk.autores.Processing(namer=uk.autores.naming.IdiomaticNamer.class)
      • isPublic

        boolean isPublic
        Generated code visibility.
        Returns:
        visibility
        Default:
        false
      • localize

        boolean localize
        Search for localized properties.
        Returns:
        whether to localize
        Default:
        true
      • format

        boolean format
        Treat values as MessageFormat expressions and generate typed method format methods.
        Returns:
        whether to format
        Default:
        true
      • missingKey

        Severity missingKey
        How to handle missing keys in localized files. Only applies when localize() is true.
        Returns:
        error severity
        Default:
        uk.autores.Severity.ERROR
      • incompatibleFormat

        Severity incompatibleFormat
        How to handle incompatible format string in localized files. Only applies when format() is true.
        Returns:
        error severity
        Default:
        uk.autores.Severity.ERROR