javax.validation

## Class Validation

- java.lang.Object
- - javax.validation.Validation

-     public class Validation
      extends Object

  This class is the entry point for 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 Summary

    Constructors
    Constructor and Description
    `Validation()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static ValidatorFactory` | `buildDefaultValidatorFactory()` Builds and returns a `ValidatorFactory` instance based on the default Bean Validation provider and following the XML configuration.
    `static GenericBootstrap` | `byDefaultProvider()` Builds a `Configuration`.
    `static <T extends Configuration<T>,U extends ValidationProvider<T>> ProviderSpecificBootstrap<T>` | `byProvider(Class<U> providerType)` Builds a `Configuration` for a particular provider implementation.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Validation

          public Validation()

  - ### Method Detail

    - #### buildDefaultValidatorFactory

          public static ValidatorFactory buildDefaultValidatorFactory()

      Builds and returns a `ValidatorFactory` instance based on the default 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:
        `ValidationException` - if 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 Bean Validation provider. and `ACMEProvider` is the `ValidationProvider` implementation of the ACME provider.
      Parameters:
        `providerType` - the `ValidationProvider` implementation type
      Returns:
        instance building a provider specific `Configuration` sub interface implementation

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.