jakarta.validation.BootstrapConfiguration Maven / Gradle / Ivy
/*
* Jakarta Bean Validation API
*
* License: Apache License, Version 2.0
* See the license.txt file in the root directory or .
*/
package jakarta.validation;
import java.util.Map;
import java.util.Set;
import jakarta.validation.executable.ExecutableType;
import jakarta.validation.executable.ValidateOnExecution;
import jakarta.validation.spi.ValidationProvider;
import jakarta.validation.valueextraction.ValueExtractor;
/**
* Represents the user specified default configuration in
* {@code META-INF/validation.xml}.
*
* 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 {@link ValidationProvider} implementation
* or {@code null} if none is specified.
*
* @return validation provider class name or {@code null}
*/
String getDefaultProviderClassName();
/**
* 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 {@link MessageInterpolator} implementation
* or {@code null} if none is specified.
*
* @return message interpolator class name or {@code null}
*/
String getMessageInterpolatorClassName();
/**
* 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 {@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 {@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 {@link ValueExtractor}s.
*
* @return the value extractor class names or an empty set if none are specified
* @since 2.0
*/
Set getValueExtractorClassNames();
/**
* 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 getConstraintMappingResourcePaths();
/**
* 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 {@link ValidateOnExecution}.
*
* 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 getDefaultValidatedExecutableTypes();
/**
* 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 getProperties();
}