Class Validation


  • public class Validation
    extends Object
    This class is the entry point for Jakarta Bean Validation.

    There are three ways to bootstrap it:

    • The easiest approach is to build the default ValidatorFactory.
       ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
       
      In this case, the default validation provider resolver will be used to locate available providers.

      The chosen provider is defined as followed:

      • if the XML configuration defines a provider, this provider is used
      • if the XML configuration does not define a provider or if no XML configuration is present the first provider returned by the ValidationProviderResolver instance is used.
    • The second bootstrap approach allows to choose a custom ValidationProviderResolver. The chosen ValidationProvider is then determined in the same way as in the default bootstrapping case (see above).
       Configuration<?> configuration = Validation
          .byDefaultProvider()
          .providerResolver( new MyResolverStrategy() )
          .configure();
       ValidatorFactory factory = configuration.buildValidatorFactory();
       
    • The third approach allows you to specify explicitly and in a type safe fashion the expected provider.

      Optionally you can choose a custom ValidationProviderResolver.

       ACMEConfiguration configuration = Validation
          .byProvider(ACMEProvider.class)
          .providerResolver( new MyResolverStrategy() )  // optionally set the provider resolver
          .configure();
       ValidatorFactory factory = configuration.buildValidatorFactory();
       

    Note:

    • The ValidatorFactory object built by the bootstrap process should be cached and shared amongst Validator consumers.
    • This class is thread-safe.
    Author:
    Emmanuel Bernard, Hardy Ferentschik
    • Constructor Detail

      • Validation

        public Validation()
    • Method Detail

      • buildDefaultValidatorFactory

        public static ValidatorFactory buildDefaultValidatorFactory()
        Builds and returns a ValidatorFactory instance based on the default Jakarta Bean Validation provider and following the XML configuration.

        The provider list is resolved using the default validation provider resolver logic.

        The code is semantically equivalent to Validation.byDefaultProvider().configure().buildValidatorFactory().

        Returns:
        ValidatorFactory instance
        Throws:
        NoProviderFoundException - if no Jakarta Bean Validation provider was found
        ValidationException - if a Jakarta Bean Validation provider was found but the ValidatorFactory cannot be built
      • byDefaultProvider

        public static GenericBootstrap byDefaultProvider()
        Builds a Configuration. The provider list is resolved using the strategy provided to the bootstrap state.
         Configuration<?> configuration = Validation
            .byDefaultProvider()
            .providerResolver( new MyResolverStrategy() )
            .configure();
         ValidatorFactory factory = configuration.buildValidatorFactory();
         
        The provider can be specified in the XML configuration. If the XML configuration does not exist or if no provider is specified, the first available provider will be returned.
        Returns:
        instance building a generic Configuration compliant with the bootstrap state provided
      • byProvider

        public static <T extends Configuration<T>,​U extends ValidationProvider<T>> ProviderSpecificBootstrap<T> byProvider​(Class<U> providerType)
        Builds a Configuration for a particular provider implementation.

        Optionally overrides the provider resolution strategy used to determine the provider.

        Used by applications targeting a specific provider programmatically.

         ACMEConfiguration configuration =
             Validation.byProvider(ACMEProvider.class)
                     .providerResolver( new MyResolverStrategy() )
                     .configure();
         
        , where ACMEConfiguration is the Configuration sub interface uniquely identifying the ACME Jakarta Bean Validation provider. and ACMEProvider is the ValidationProvider implementation of the ACME provider.
        Type Parameters:
        T - the type of the Configuration corresponding to this ValidationProvider
        U - the type of the ValidationProvider implementation
        Parameters:
        providerType - the ValidationProvider implementation type
        Returns:
        instance building a provider specific Configuration sub interface implementation