/*
 * 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;

import java.util.Map;
import java.util.Set;

import javax.validation.executable.ExecutableType;
import javax.validation.executable.ValidateOnExecution;
import javax.validation.spi.ValidationProvider;
import javax.validation.valueextraction.ValueExtractor;

Represents the user specified default configuration in META-INF/validation.xml.

Note that modifications to the returned objects do not have any effect. Instead use the methods provided on Configuration in order to apply modifications to the configuration.

Author:Emmanuel Bernard, Gunnar Morling, Hardy Ferentschik, Guillaume Smet
Since:1.1
/** * Represents the user specified default configuration in * {@code META-INF/validation.xml}. * <p> * Note that modifications to the returned objects do not have any effect. * Instead use the methods provided on {@link Configuration} in order to * apply modifications to the configuration. * * @author Emmanuel Bernard * @author Gunnar Morling * @author Hardy Ferentschik * @author Guillaume Smet * @since 1.1 */
public interface BootstrapConfiguration {
Class name of the ValidationProvider implementation or null if none is specified.
Returns:validation provider class name or null
/** * Class name of the {@link ValidationProvider} implementation * or {@code null} if none is specified. * * @return validation provider class name or {@code null} */
String getDefaultProviderClassName();
Class name of the ConstraintValidatorFactory implementation or null if none is specified.
Returns:constraint validator factory class name or null
/** * Class name of the {@link ConstraintValidatorFactory} implementation * or {@code null} if none is specified. * * @return constraint validator factory class name or {@code null} */
String getConstraintValidatorFactoryClassName();
Class name of the MessageInterpolator implementation or null if none is specified.
Returns:message interpolator class name or null
/** * Class name of the {@link MessageInterpolator} implementation * or {@code null} if none is specified. * * @return message interpolator class name or {@code null} */
String getMessageInterpolatorClassName();
Class name of the TraversableResolver implementation or null if none is specified.
Returns:traversable resolver class name or null
/** * Class name of the {@link TraversableResolver} implementation * or {@code null} if none is specified. * * @return traversable resolver class name or {@code null} */
String getTraversableResolverClassName();
Class name of the ParameterNameProvider implementation or null if none is specified.
Returns:parameter name provider class name or null
/** * Class name of the {@link ParameterNameProvider} implementation * or {@code null} if none is specified. * * @return parameter name provider class name or {@code null} */
String getParameterNameProviderClassName();
Class name of the ClockProvider implementation or null if none is specified.
Returns:clock provider class name or null
Since:2.0
/** * Class name of the {@link ClockProvider} implementation or * {@code null} if none is specified. * * @return clock provider class name or {@code null} * * @since 2.0 */
String getClockProviderClassName();
Returns the class names of ValueExtractors.
Returns:the value extractor class names or an empty set if none are specified
Since:2.0
/** * Returns the class names of {@link ValueExtractor}s. * * @return the value extractor class names or an empty set if none are specified * @since 2.0 */
Set<String> getValueExtractorClassNames();
Returns a set of resource paths pointing to XML constraint mapping files. The set is empty if none are specified.
Returns:set of constraint mapping resource paths
/** * Returns a set of resource paths pointing to XML constraint mapping files. * The set is empty if none are specified. * * @return set of constraint mapping resource paths */
Set<String> getConstraintMappingResourcePaths();
Returns true if the validation execution is explicitly marked as enabled or if it is left undefined.
Returns:whether validation execution is globally enabled
/** * Returns true if the validation execution is explicitly marked as enabled * or if it is left undefined. * * @return whether validation execution is globally enabled */
boolean isExecutableValidationEnabled();
Returns the set of executable types that should be considered unless explicitly overridden via ValidateOnExecution.

Returns a set containing ExecutableType.CONSTRUCTORS and ExecutableType.NON_GETTER_METHODS if unspecified in the configuration.

Returns:set of validated executable types
/** * Returns the set of executable types that should be considered * unless explicitly overridden via {@link ValidateOnExecution}. * <p> * Returns a set containing {@link ExecutableType#CONSTRUCTORS} and * {@link ExecutableType#NON_GETTER_METHODS} if unspecified in the configuration. * * @return set of validated executable types */
Set<ExecutableType> getDefaultValidatedExecutableTypes();
Returns properties as a map of string based key/value pairs. The map is empty if no property has been specified.
Returns:the properties map
/** * Returns properties as a map of string based key/value pairs. * The map is empty if no property has been specified. * * @return the properties map */
Map<String, String> getProperties(); }