Interface ServiceConfigValidatorV2

  • All Known Implementing Classes:
    PurposeMappingValidator, SingleAliasPurposeMappingValidator

    @SupportedAll
    public interface ServiceConfigValidatorV2
    This interface provides a means to validate an entire ServiceConfig's attribute values together. It should be used when a Schema or SubSchema has AttributeSchemas whose valid values depend on other attributes in the config.

    It can be expected that instances of this class will be instantiated via a dependency injection framework, and so dependencies can be used via an @Inject-annotated constructor or setters.

    • Method Detail

      • validate

        void validate​(Realm realm,
                      String serviceName,
                      List<String> configPath,
                      Map<String,​Set<String>> attributes)
               throws ServiceConfigException,
                      ServiceErrorException
        Implement this method to perform the validation of the attributes.
        Parameters:
        realm - The realm the config is in, or null if it is not in a realm.
        serviceName - The name of the service to be validated.
        configPath - The names of the service config. The last element in the list will be the name of this config. In the case of service-level (non-SubSchema) config, this will be an empty list.
        attributes - The map of attribute names to values. This map will contain the default values for attributes where a value is not defined in this instance.
        Throws:
        ServiceConfigException - If the configuration is not valid, throw an SMSException, with a description of why it is invalid.
        ServiceErrorException - If an exception occurred when trying to validate the config.