Class ConfigurationValidator

java.lang.Object
de.aristaflow.adept2.base.configuration.ConfigurationValidator
Direct Known Subclasses:
EmbeddedServletService.ConfigurationValidator, PluginRegistry.ConfigurationValidator

public abstract class ConfigurationValidator extends Object
A ConfigurationValidator can be specified in a ConfigurationDescription and (if specified) is used to validate a configuration at application startup without having to wait until the component (for which the configuration was intended) is instantiated. This can be important since components are usually instantiated on-demand. Implementations must have a public default (i.e. parameterless) constructor.
  • Constructor Details

    • ConfigurationValidator

      public ConfigurationValidator()
  • Method Details

    • validate

      protected abstract void validate(Configuration configuration) throws ConfigurationException
      Validates the configuration in the given Configuration object. The configuration was already validated against the property descriptions of the ConfigurationDescription, i.e. if the type was Property.Type.BOOLEAN you can expect the value to be a valid string representation of a boolean (valid in the sense of Property.Type.BOOLEAN).

      To report errors (i.e. throw ConfigurationExceptions) the method rebukeIllegalValue(Configuration, String, String) should be used.

      Parameters:
      configuration - the configuration to be validated
      Throws:
      ConfigurationException - if the configuration contains errors
    • rebuke

      protected final void rebuke(String description) throws ConfigurationException
      Constructs a ConfigurationException and throws it. This is a convenience method that only requires implementors to specify a problem description. This information (plus some other data) is then formed into a meaningful error message. This is a generic version of the rebuke-methods in case the problem isn't related to a single property.
      Parameters:
      description - the description of the problem (full sentence(s) preferred)
      Throws:
      ConfigurationException - the constructed exception
    • rebukeIllegalValue

      protected final void rebukeIllegalValue(Configuration configuration, String propertyName, String shortDescription) throws ConfigurationException
      Constructs a ConfigurationException and throws it. This is a convenience method that only requires implementors to specify the configuration, a property name and a very short description of the error. This information (plus some other data) is then formed into a meaningful error message.

      The short error description should be something like "value of type boolean expected" or "value must be positive".

      Parameters:
      configuration - the instance configuration provided in validate(Configuration)
      propertyName - the name of the property containing the illegal value
      shortDescription - the short error description
      Throws:
      ConfigurationException - the constructed exception
    • rebukeMissingValue

      protected final void rebukeMissingValue(String propertyName) throws PropertyNotSetException
      Constructs a PropertyNotSetException and throws it. This is a convenience method that only requires implementors to specify the configuration and a property name. This information (plus some other data) is then formed into a meaningful error message.
      Parameters:
      propertyName - the property name of the missing value
      Throws:
      PropertyNotSetException - the constructed exception