Annotation Interface ConfigItem


@Retention(RUNTIME) @Target({FIELD,PARAMETER}) @Documented public @interface ConfigItem
A single container configuration item.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Specify the default value of the configuration item, if none is found in the configuration.
    Specify the default value documentation, when it cannot be expressed by defaultValue().
    boolean
    Specify whether documentation should be generated for this config item.
    Specify the relative name of the configuration item.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Constant value for name() indicating that the annotated element's name should be used as-is.
    static final String
    Constant value for name() indicating that the annotated element's name should be de-camel-cased and hyphenated, and then used.
    static final String
    Constant value for defaultValue() indicating that no default value should be used (the value is a configuration group or it is Optional).
    static final String
    Constant value for name() indicating that the parent's name for the member referencing this item's group should be used as the name of this item.
  • Field Details

    • ELEMENT_NAME

      static final String ELEMENT_NAME
      Constant value for name() indicating that the annotated element's name should be used as-is.
      See Also:
    • HYPHENATED_ELEMENT_NAME

      static final String HYPHENATED_ELEMENT_NAME
      Constant value for name() indicating that the annotated element's name should be de-camel-cased and hyphenated, and then used.
      See Also:
    • PARENT

      static final String PARENT
      Constant value for name() indicating that the parent's name for the member referencing this item's group should be used as the name of this item. This value is only valid for members of configuration groups.
      See Also:
    • NO_DEFAULT

      static final String NO_DEFAULT
      Constant value for defaultValue() indicating that no default value should be used (the value is a configuration group or it is Optional).
      See Also:
  • Element Details

    • name

      String name
      Specify the relative name of the configuration item.
      Returns:
      the name
      Default:
      "<<hyphenated element name>>"
    • defaultValue

      String defaultValue
      Specify the default value of the configuration item, if none is found in the configuration.
      Returns:
      the default value
      Default:
      "<<no default>>"
    • defaultValueDocumentation

      String defaultValueDocumentation
      Specify the default value documentation, when it cannot be expressed by defaultValue(). For example, if your default only exists for the DEV mode, you can use "true (DEV)".
      Returns:
      the default value documentation
      Default:
      ""
    • generateDocumentation

      boolean generateDocumentation
      Specify whether documentation should be generated for this config item.

      This is only useful in very niche use cases where the build-time and runtime config both contain a configuration property with the exact same name, and we only want to generate documentation from one of them.

      Returns:
      whether documentation should be generated
      Default:
      true