Class ConfigurationDefinition<DataType>

All Implemented Interfaces:

public class ConfigurationDefinition<DataType> extends Object implements Comparable<ConfigurationDefinition<DataType>>
A higher-level/detailed definition to provide type-safety, metadata, default values, etc. Any code that is working with configurations should be using an instance of this class, rather than the lower-level, generic LiquibaseConfiguration

ConfigurationDefinitions that are registered with LiquibaseConfiguration.registerDefinition(ConfigurationDefinition) will be available in generated help etc.

These objects are immutable, so to construct definitions, use ConfigurationDefinition.Builder

The definition keys should be dot-separated, camelCased names, using a unique "namespace" as part of it. For example:

. Liquibase uses "liquibase" as the base namespace like
  • Method Details

    • getCurrentValue

      public DataType getCurrentValue()
      Convenience method around getCurrentConfiguredValue(ConfigurationValueProvider...) to return the value.
    • getValueConverter

      public ConfigurationValueConverter<DataType> getValueConverter()
    • getCurrentValueObfuscated

      public DataType getCurrentValueObfuscated()
      Convenience method around getCurrentConfiguredValue(ConfigurationValueProvider...) to return the obfuscated version of the value.
      the obfuscated value, or the plain-text value if no obfuscator is defined for this definition.
    • getCurrentConfiguredValue

      public ConfiguredValue<DataType> getCurrentConfiguredValue()
      Full details on the current value for this definition. Will always return a ConfiguredValue,
    • getCurrentConfiguredValue

      public ConfiguredValue<DataType> getCurrentConfiguredValue(ConfigurationValueProvider... additionalValueProviders)
      additionalValueProviders - additional ConfigurationValueProviders to use with higher priority than the ones registered in LiquibaseConfiguration. The higher the array index, the higher the priority.
      Full details on the current value for this definition. Will always return a ConfiguredValue,
    • getKey

      public String getKey()
      The standard configuration key for this definition. See the ConfigurationDefinition class-level docs on key format.
    • getAliasKeys

      public Set<String> getAliasKeys()
      alternate configuration keys to check for values. Used for backwards compatibility.
    • getDataType

      public Class<DataType> getDataType()
      the type of data this definition returns.
    • getDescription

      public String getDescription()
      A user-friendly description of this definition. This will be exposed to end-users in generated help.
    • getDefaultValue

      public DataType getDefaultValue()
      The default value used by this definition if no value is currently configured.

      NOTE: this is only used if none of the ConfigurationValueProviders have a configuration for the property. Even if some return "null", that is still considered a provided value to use rather than this default.

    • getDefaultValueDescription

      public String getDefaultValueDescription()
      A description of the default value. Defaults to String.valueOf(Object) of getDefaultValue() but can be explicitly with CommandArgumentDefinition.Building.defaultValue(Object, String).
    • getCommonlyUsed

      public boolean getCommonlyUsed()
      Returns true if this is configuration users are often interested in setting. Used to simplify generated help by hiding less commonly used settings.
    • isInternal

      public boolean isInternal()
      Return true if this configuration is for internal and/or programmatic use only. End-user facing integrations should not expose internal configurations directly.
    • isHidden

      public boolean isHidden()
      Return true if this configuration should not be printed to the console for any help command.
    • compareTo

      public int compareTo(ConfigurationDefinition o)
      Specified by:
      compareTo in interface Comparable<DataType>
    • equals

      public boolean equals(Object o)
      equals in class Object
    • hashCode

      public int hashCode()
      hashCode in class Object
    • equalsKey

      public boolean equalsKey(String key)
      Return true if the given key matches this definition.