Top Description Inners Constructors Methods
javax.validation

public Class Validation

extends Object
Class Inheritance
Imports
java.lang.ref.SoftReference, java.security.AccessController, .PrivilegedAction, java.util.ArrayList, .Iterator, .List, .ServiceConfigurationError, .ServiceLoader, .WeakHashMap, javax.validation.bootstrap.GenericBootstrap, .ProviderSpecificBootstrap, javax.validation.spi.BootstrapState, .ValidationProvider

This class is the entry point for Bean Validation.

There are three ways to bootstrap it:

Note:

Authors
Emmanuel Bernard, Hardy Ferentschik

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
Validation.DefaultValidationProviderResolver

Finds ValidationProvider according to the default ValidationProviderResolver defined in the Bean Validation specification.

private static class
private static class
private static class
private static class

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public static ValidatorFactory

Returns:

ValidatorFactory instance
buildDefaultValidatorFactory
()

Builds and returns a ValidatorFactory instance based on the default Bean Validation provider and following the XML configuration.

public static GenericBootstrap

Returns:

instance building a generic Configuration compliant with the bootstrap state provided
byDefaultProvider
()

Builds a Configuration.

public static <
the type of the Configuration corresponding to this ValidationProvider
T extends Configuration<T>
,
the type of the ValidationProvider implementation
U extends ValidationProvider<T>
>
ProviderSpecificBootstrap<T>

Returns:

instance building a provider specific Configuration sub interface implementation
byProvider
(Class<U>
the ValidationProvider implementation type
providerType
)

Builds a Configuration for a particular provider implementation.

private static void
clearDefaultValidationProviderResolverCache()

Not a public API; it can be used reflectively by code that integrates with Bean Validation, e.g. application servers, to clear the provider cache maintained by the default provider resolver.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

Validationback to summary
public Validation()

Method Detail

buildDefaultValidatorFactoryback to summary
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

ValidatorFactory instance

Exceptions
NoProviderFoundException:
if no Bean Validation provider was found
ValidationException:
if a Bean Validation provider was found but the ValidatorFactory cannot be built
byDefaultProviderback to summary
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:GenericBootstrap

instance building a generic Configuration compliant with the bootstrap state provided

byProviderback to summary
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
<T>
the type of the Configuration corresponding to this ValidationProvider
<U>
the type of the ValidationProvider implementation
providerType:Class<U>

the ValidationProvider implementation type

Returns:ProviderSpecificBootstrap<T>

instance building a provider specific Configuration sub interface implementation

clearDefaultValidationProviderResolverCacheback to summary
private static void clearDefaultValidationProviderResolverCache()

Not a public API; it can be used reflectively by code that integrates with Bean Validation, e.g. application servers, to clear the provider cache maintained by the default provider resolver.

This is a strictly unsupported API, its definition may be changed or removed at any time. Its purpose is to explore the addition of standardized methods for dealing with provider caching in a future revision of the spec.

Annotations
@SuppressWarnings:unused
javax.validation back to summary

private Class Validation.DefaultValidationProviderResolver

extends Object
implements ValidationProviderResolver
Class Inheritance
  • java.lang.Object
  • javax.validation.Validation.DefaultValidationProviderResolver
All Implemented Interfaces
javax.validation.ValidationProviderResolver

Finds ValidationProvider according to the default ValidationProviderResolver defined in the Bean Validation specification. This implementation first uses thread's context classloader to locate providers. If no suitable provider is found using the aforementioned class loader, it uses current class loader. If it still does not find any suitable provider, it tries to locate the built-in provider using the current class loader.
Authors
Emmanuel Bernard, Hardy Ferentschik

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public List<ValidationProvider<?>>
getValidationProviders()

Implements javax.validation.ValidationProviderResolver.getValidationProviders.

Returns a list of ValidationProvider available in the runtime environment.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

DefaultValidationProviderResolverback to summary
private DefaultValidationProviderResolver()

Method Detail

getValidationProvidersback to summary
public List<ValidationProvider<?>> getValidationProviders()

Implements javax.validation.ValidationProviderResolver.getValidationProviders.

Doc from javax.validation.ValidationProviderResolver.getValidationProviders.

Returns a list of ValidationProvider available in the runtime environment.

Returns:List<ValidationProvider<?>>

list of validation providers

Annotations
@Override
javax.validation back to summary

private Class Validation.GenericBootstrapImpl

extends Object
implements GenericBootstrap, BootstrapState
Class Inheritance
All Implemented Interfaces
javax.validation.spi.BootstrapState, javax.validation.bootstrap.GenericBootstrap

Field Summary

Modifier and TypeField and Description
private ValidationProviderResolver
private ValidationProviderResolver

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public Configuration<?>
configure()

Implements javax.validation.bootstrap.GenericBootstrap.configure.

Returns a generic Configuration implementation.
public ValidationProviderResolver
getDefaultValidationProviderResolver()

Implements javax.validation.spi.BootstrapState.getDefaultValidationProviderResolver.

Specification default ValidationProviderResolver strategy instance.
public ValidationProviderResolver
getValidationProviderResolver()

Implements javax.validation.spi.BootstrapState.getValidationProviderResolver.

User defined ValidationProviderResolver strategy instance or null if undefined.
public GenericBootstrap
providerResolver(ValidationProviderResolver
the ValidationProviderResolver to use for bootstrapping
resolver
)

Implements javax.validation.bootstrap.GenericBootstrap.providerResolver.

Defines the provider resolution strategy.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

defaultResolverback to summary
private ValidationProviderResolver defaultResolver
resolverback to summary
private ValidationProviderResolver resolver

Constructor Detail

GenericBootstrapImplback to summary
private GenericBootstrapImpl()

Method Detail

configureback to summary
public Configuration<?> configure()

Implements javax.validation.bootstrap.GenericBootstrap.configure.

Doc from javax.validation.bootstrap.GenericBootstrap.configure.

Returns a generic Configuration implementation. At this stage the provider used to build the ValidatorFactory is not defined.

The Configuration implementation is provided by the first provider returned by the ValidationProviderResolver strategy.

Returns:Configuration<?>

a Configuration implementation compliant with the bootstrap state

Annotations
@Override
getDefaultValidationProviderResolverback to summary
public ValidationProviderResolver getDefaultValidationProviderResolver()

Implements javax.validation.spi.BootstrapState.getDefaultValidationProviderResolver.

Doc from javax.validation.spi.BootstrapState.getDefaultValidationProviderResolver.

Specification default ValidationProviderResolver strategy instance.

Returns:ValidationProviderResolver

default implementation of ValidationProviderResolver

Annotations
@Override
getValidationProviderResolverback to summary
public ValidationProviderResolver getValidationProviderResolver()

Implements javax.validation.spi.BootstrapState.getValidationProviderResolver.

Doc from javax.validation.spi.BootstrapState.getValidationProviderResolver.

User defined ValidationProviderResolver strategy instance or null if undefined.

Returns:ValidationProviderResolver

ValidationProviderResolver instance or null

Annotations
@Override
providerResolverback to summary
public GenericBootstrap providerResolver(ValidationProviderResolver resolver)

Implements javax.validation.bootstrap.GenericBootstrap.providerResolver.

Doc from javax.validation.bootstrap.GenericBootstrap.providerResolver.

Defines the provider resolution strategy. This resolver returns the list of providers evaluated to build the Configuration.

If no resolver is defined, the default ValidationProviderResolver implementation is used.

Parameters
resolver:ValidationProviderResolver

the ValidationProviderResolver to use for bootstrapping

Returns:GenericBootstrap

this following the chaining method pattern

Annotations
@Override
javax.validation back to summary

private Class Validation.GetValidationProviderListAction

extends Object
implements PrivilegedAction<List<ValidationProvider<?>>>
Class Inheritance
All Implemented Interfaces
java.security.PrivilegedAction

Field Summary

Modifier and TypeField and Description
private static final Validation.GetValidationProviderListAction
private final WeakHashMap<ClassLoader, SoftReference<List<ValidationProvider<?>>>>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private synchronized void
public static synchronized void
private synchronized List<ValidationProvider<?>>
public static synchronized List<ValidationProvider<?>>
private List<ValidationProvider<?>>
public List<ValidationProvider<?>>
run()

Implements java.security.PrivilegedAction.run.

Performs the computation.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

INSTANCEback to summary
private static final Validation.GetValidationProviderListAction INSTANCE
providersPerClassloaderback to summary
private final WeakHashMap<ClassLoader, SoftReference<List<ValidationProvider<?>>>> providersPerClassloader

Constructor Detail

GetValidationProviderListActionback to summary
private GetValidationProviderListAction()

Method Detail

cacheValidationProvidersback to summary
private synchronized void cacheValidationProviders(ClassLoader classLoader, List<ValidationProvider<?>> providers)
clearCacheback to summary
public static synchronized void clearCache()
getCachedValidationProvidersback to summary
private synchronized List<ValidationProvider<?>> getCachedValidationProviders(ClassLoader classLoader)
getValidationProviderListback to summary
public static synchronized List<ValidationProvider<?>> getValidationProviderList()
loadProvidersback to summary
private List<ValidationProvider<?>> loadProviders(ClassLoader classloader)
runback to summary
public List<ValidationProvider<?>> run()

Implements java.security.PrivilegedAction.run.

Doc from java.security.PrivilegedAction.run.

Performs the computation. This method will be called by AccessController.doPrivileged after enabling privileges.

Returns:List<ValidationProvider<?>>

a class-dependent value that may represent the results of the computation. Each class that implements PrivilegedAction should document what (if anything) this value represents.

Annotations
@Override
javax.validation back to summary

private Class Validation.NewProviderInstance<T extends javax.validation.spi.ValidationProvider<?>>

extends Object
implements PrivilegedAction<T extends ValidationProvider<?>>
Class Inheritance
All Implemented Interfaces
java.security.PrivilegedAction

Field Summary

Modifier and TypeField and Description
private final Class<T>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static <T extends ValidationProvider<?>> Validation.NewProviderInstance<T>
action(Class<T> clazz)

public T
run()

Implements java.security.PrivilegedAction.run.

Performs the computation.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

clazzback to summary
private final Class<T> clazz

Constructor Detail

NewProviderInstanceback to summary
private NewProviderInstance(Class<T> clazz)

Method Detail

actionback to summary
public static <T extends ValidationProvider<?>> Validation.NewProviderInstance<T> action(Class<T> clazz)
runback to summary
public T run()

Implements java.security.PrivilegedAction.run.

Doc from java.security.PrivilegedAction.run.

Performs the computation. This method will be called by AccessController.doPrivileged after enabling privileges.

Returns:T

a class-dependent value that may represent the results of the computation. Each class that implements PrivilegedAction should document what (if anything) this value represents.

Annotations
@Override
javax.validation back to summary

private Class Validation.ProviderSpecificBootstrapImpl<T extends javax.validation.Configuration<T>, U extends javax.validation.spi.ValidationProvider<T>>

extends Object
implements ProviderSpecificBootstrap<T extends Configuration<T>>
Class Inheritance
All Implemented Interfaces
javax.validation.bootstrap.ProviderSpecificBootstrap

Field Summary

Modifier and TypeField and Description
private ValidationProviderResolver
private final Class<U>

Constructor Summary

AccessConstructor and Description
public
ProviderSpecificBootstrapImpl(Class<U> validationProviderClass)

Method Summary

Modifier and TypeMethod and Description
public T

Returns:

a Configuration sub interface implementation
configure
()

Implements javax.validation.bootstrap.ProviderSpecificBootstrap.configure.

Determines the provider implementation suitable for byProvider(Class) and delegates the creation of this specific Configuration subclass to the provider.
public ProviderSpecificBootstrap<T>

Returns:

self
providerResolver
(ValidationProviderResolver
ValidationProviderResolver implementation used
resolver
)

Implements javax.validation.bootstrap.ProviderSpecificBootstrap.providerResolver.

Optionally defines the provider resolver implementation used.
private <P> P
run(PrivilegedAction<P> action)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

resolverback to summary
private ValidationProviderResolver resolver
validationProviderClassback to summary
private final Class<U> validationProviderClass

Constructor Detail

ProviderSpecificBootstrapImplback to summary
public ProviderSpecificBootstrapImpl(Class<U> validationProviderClass)

Method Detail

configureback to summary
public T configure()

Implements javax.validation.bootstrap.ProviderSpecificBootstrap.configure.

Determines the provider implementation suitable for byProvider(Class) and delegates the creation of this specific Configuration subclass to the provider.

Returns:T

a Configuration sub interface implementation

Annotations
@Override
providerResolverback to summary
public ProviderSpecificBootstrap<T> providerResolver(ValidationProviderResolver resolver)

Implements javax.validation.bootstrap.ProviderSpecificBootstrap.providerResolver.

Optionally defines the provider resolver implementation used. If not defined, use the default ValidationProviderResolver.

Parameters
resolver:ValidationProviderResolver

ValidationProviderResolver implementation used

Returns:ProviderSpecificBootstrap<T>

self

Annotations
@Override
runback to summary
private <P> P run(PrivilegedAction<P> action)