/*
* Jakarta Bean Validation API
*
* License: Apache License, Version 2.0
* See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>.
*/
package javax.validation.bootstrap;
import javax.validation.Configuration;
import javax.validation.ValidationException;
import javax.validation.ValidationProviderResolver;
import javax.validation.spi.ValidationProvider;
Defines the state used to bootstrap Jakarta Bean Validation and creates a provider specific Configuration
of type T
. The specific Configuration
is linked to the provider via the generic parameter of the ValidationProvider
implementation.
The requested provider is the first provider instance assignable to the requested provider type (known when ProviderSpecificBootstrap
is built). The list of providers evaluated is returned by ValidationProviderResolver
. If no ValidationProviderResolver
is defined, the default ValidationProviderResolver
strategy is used.
Author: Emmanuel Bernard Type parameters: - <T> – the provider specific
Configuration
type
/**
* Defines the state used to bootstrap Jakarta Bean Validation and
* creates a provider specific {@link Configuration}
* of type {@code T}.
* <p>
* The specific {@code Configuration} is linked to the provider via the generic
* parameter of the {@link ValidationProvider} implementation.
* <p>
* The requested provider is the first provider instance assignable to
* the requested provider type (known when {@link ProviderSpecificBootstrap} is built).
* The list of providers evaluated is returned by {@link ValidationProviderResolver}.
* If no {@code ValidationProviderResolver} is defined, the
* default {@code ValidationProviderResolver} strategy is used.
*
* @param <T> the provider specific {@link Configuration} type
*
* @author Emmanuel Bernard
*/
public interface ProviderSpecificBootstrap<T extends Configuration<T>> {
Optionally defines the provider resolver implementation used. If not defined, use the default ValidationProviderResolver
Params: - resolver –
ValidationProviderResolver
implementation used
Returns: this
following the chaining method pattern
/**
* Optionally defines the provider resolver implementation used.
* If not defined, use the default {@link ValidationProviderResolver}
*
* @param resolver {@code ValidationProviderResolver} implementation used
*
* @return {@code this} following the chaining method pattern
*/
public ProviderSpecificBootstrap<T> providerResolver(
ValidationProviderResolver resolver);
Determines the provider implementation suitable for T
and delegates the creation of this specific Configuration
subclass to the provider. Throws: - ValidationException – if the
Configuration
object cannot be built; this is generally due to an issue with the ValidationProviderResolver
Returns: Configuration
sub interface implementation
/**
* Determines the provider implementation suitable for {@code T} and delegates
* the creation of this specific {@link Configuration} subclass to the provider.
*
* @return {@code Configuration} sub interface implementation
*
* @throws ValidationException if the {@code Configuration} object cannot be built;
* this is generally due to an issue with the {@code ValidationProviderResolver}
*/
public T configure();
}