javax.validation.bootstrap.ProviderSpecificBootstrap Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ehcache Show documentation
Show all versions of ehcache Show documentation
Ehcache is an open source, standards-based cache used to boost performance,
offload the database and simplify scalability. Ehcache is robust, proven and full-featured and
this has made it the most widely-used Java-based cache.
/*
* JBoss, Home of Professional Open Source
* Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
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 Bean Validation and
* creates a provider specific {@link Configuration}
* of type {@code T}.
*
* The specific {@code Configuration} is linked to the provider via the generic
* parameter of the {@link ValidationProvider} implementation.
*
* 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.
*
* @author Emmanuel Bernard
*/
public interface ProviderSpecificBootstrap> {
/**
* 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 providerResolver(ValidationProviderResolver resolver);
/**
* 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();
}