Class DefaultValidator
java.lang.Object
io.micronaut.validation.validator.DefaultValidator
- All Implemented Interfaces:
io.micronaut.inject.annotation.AnnotatedElementValidator,io.micronaut.inject.validation.BeanDefinitionValidator,ExecutableMethodValidator,ReactiveValidator,Validator,jakarta.validation.executable.ExecutableValidator,jakarta.validation.Validator
- Direct Known Subclasses:
DefaultAnnotatedElementValidator
@Singleton
@Primary
public class DefaultValidator
extends Object
implements Validator, ExecutableMethodValidator, ReactiveValidator, io.micronaut.inject.annotation.AnnotatedElementValidator, io.micronaut.inject.validation.BeanDefinitionValidator
Default implementation of the
Validator interface.- Since:
- 1.2
- Author:
- graemerocher, Andriy Dmytruk
-
Field Summary
Fields inherited from interface io.micronaut.inject.validation.BeanDefinitionValidator
DEFAULTFields inherited from interface io.micronaut.validation.validator.Validator
ANN_CONSTRAINT, ANN_VALID -
Constructor Summary
ConstructorsConstructorDescriptionDefaultValidator(@NonNull ValidatorConfiguration configuration) Default constructor. -
Method Summary
Modifier and TypeMethodDescription<T> TcreateValid(@NonNull Class<T> beanType, Object... arguments) Create a new valid instance.@NonNull ExecutableMethodValidatorOverridden variation that returns aExecutableMethodValidator.protected <T> @Nullable io.micronaut.core.beans.BeanIntrospection<T>getBeanIntrospection(@NonNull Class<T> type) Looks up a bean introspection for the given object.protected <T> @Nullable io.micronaut.core.beans.BeanIntrospection<T>getBeanIntrospection(T object) Looks up a bean introspection for the given object.protected <T> @Nullable io.micronaut.core.beans.BeanIntrospection<T>getBeanIntrospection(T object, @NonNull Class<T> definedClass) looks up a bean introspection for the given object by instance's class or defined class.io.micronaut.core.beans.BeanIntrospectorjakarta.validation.metadata.BeanDescriptorgetConstraintsForClass(Class<?> clazz) static StringrequireNonEmpty(String name, String value) Deprecated.It will be private in a future version.static <T> TrequireNonNull(String name, T value) Deprecated.It will be private in a future version.<T> T<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validate(@NonNull io.micronaut.core.beans.BeanIntrospection<T> introspection, T object, @NonNull Class<?>... groups) Validate the given introspection and object.<T> Set<jakarta.validation.ConstraintViolation<T>>validate(io.micronaut.core.beans.BeanIntrospection<T> introspection, T object, BeanValidationContext context) Validate the given introspection and object.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>><T> Set<jakarta.validation.ConstraintViolation<T>>validate(T object, BeanValidationContext validationContext) Validates all constraints onobject.<T> voidvalidateBean(@NonNull io.micronaut.context.BeanResolutionContext resolutionContext, @NonNull io.micronaut.inject.BeanDefinition<T> definition, T bean) <T> voidvalidateBeanArgument(@NonNull io.micronaut.context.BeanResolutionContext resolutionContext, @NonNull io.micronaut.inject.InjectionPoint injectionPoint, @NonNull io.micronaut.core.type.Argument<T> argument, int index, T value) <T> @NonNull CompletionStage<T>validateCompletionStage(@NonNull CompletionStage<T> completionStage, @NonNull io.micronaut.core.type.Argument<T> argument, @NonNull Class<?>... groups) Validate the given CompletionStage by returning a new CompletionStage that validates the emitted value.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateConstructorParameters(@NonNull io.micronaut.core.beans.BeanIntrospection<? extends T> introspection, @NonNull Object[] parameterValues, @NonNull Class<?>... groups) Validates parameters for the given introspection and values.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateConstructorParameters(@NonNull Constructor<? extends T> constructor, @NonNull Object[] parameterValues, @NonNull Class<?>... groups) <T> Set<jakarta.validation.ConstraintViolation<T>>validateConstructorParameters(Class<? extends T> beanType, @NonNull io.micronaut.core.type.Argument<?>[] constructorArguments, @NonNull Object[] parameterValues, BeanValidationContext validationContext) Validates arguments for the given bean type and constructor arguments.<T> Set<jakarta.validation.ConstraintViolation<T>>validateConstructorParameters(Class<? extends T> beanType, io.micronaut.core.type.Argument<?>[] constructorArguments, @NonNull Object[] parameterValues, @NonNull Class<?>[] groups) Validates arguments for the given bean type and constructor arguments.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateConstructorReturnValue(@NonNull Constructor<? extends T> constructor, T createdObject, @NonNull Class<?>... groups) validatedAnnotatedElement(@NonNull io.micronaut.core.annotation.AnnotatedElement element, @Nullable Object value) <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateParameters(T object, @NonNull io.micronaut.inject.ExecutableMethod method, @NonNull Object[] parameterValues, @NonNull Class<?>... groups) Validate the parameter values of the givenExecutableMethod.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateParameters(T object, @NonNull io.micronaut.inject.ExecutableMethod method, @NonNull Collection<io.micronaut.core.type.MutableArgumentValue<?>> argumentValues, @NonNull Class<?>... groups) Validate the parameter values of the givenExecutableMethod.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateParameters(T object, @NonNull Method method, @NonNull Object[] parameterValues, @NonNull Class<?>... groups) <T> Set<jakarta.validation.ConstraintViolation<T>>validateParameters(T object, io.micronaut.inject.ExecutableMethod method, @NonNull Object[] parameterValues, BeanValidationContext validationContext) Validate the parameter values of the givenExecutableMethod.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateProperty(T object, @NonNull String propertyName, @NonNull Class<?>... groups) <T> Set<jakarta.validation.ConstraintViolation<T>>validateProperty(T object, String propertyName, BeanValidationContext context) Validates all constraints placed on the property ofobjectnamedpropertyName.<T> @NonNull org.reactivestreams.Publisher<T>validatePublisher(@NonNull io.micronaut.core.type.ReturnType<?> returnType, @NonNull org.reactivestreams.Publisher<T> publisher, @NonNull Class<?>... groups) Validate the given publisher by returning a new Publisher that validates each emitted value.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateReturnValue(T bean, @NonNull io.micronaut.inject.ExecutableMethod<?, Object> executableMethod, @Nullable Object returnValue, @NonNull Class<?>... groups) Validates the return value of aExecutableMethod.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateReturnValue(T object, @NonNull Method method, @Nullable Object returnValue, @NonNull Class<?>... groups) <T> Set<jakarta.validation.ConstraintViolation<T>>validateReturnValue(T bean, io.micronaut.inject.ExecutableMethod<?, Object> executableMethod, Object returnValue, BeanValidationContext validationContext) Validates the return value of aExecutableMethod.<T> @NonNull Set<jakarta.validation.ConstraintViolation<T>>validateValue(@NonNull Class<T> beanType, @NonNull String propertyName, @Nullable Object value, @NonNull Class<?>... groups) <T> Set<jakarta.validation.ConstraintViolation<T>>validateValue(Class<T> beanType, String propertyName, Object value, BeanValidationContext context) Validates all constraints placed on the property namedpropertyNameof the classbeanTypewould the property value bevalue.
-
Constructor Details
-
DefaultValidator
Default constructor.- Parameters:
configuration- The validator configuration
-
-
Method Details
-
getBeanIntrospector
public io.micronaut.core.beans.BeanIntrospector getBeanIntrospector()- Returns:
- The bean introspector
-
validate
-
validate
public <T> Set<jakarta.validation.ConstraintViolation<T>> validate(T object, BeanValidationContext validationContext) Description copied from interface:ValidatorValidates all constraints onobject. -
validate
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validate(@NonNull @NonNull io.micronaut.core.beans.BeanIntrospection<T> introspection, @NonNull T object, @NonNull @NonNull Class<?>... groups) Validate the given introspection and object. -
validate
public <T> Set<jakarta.validation.ConstraintViolation<T>> validate(io.micronaut.core.beans.BeanIntrospection<T> introspection, T object, BeanValidationContext context) Description copied from interface:ValidatorValidate the given introspection and object. -
validateProperty
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateProperty(@NonNull T object, @NonNull @NonNull String propertyName, @NonNull @NonNull Class<?>... groups) - Specified by:
validatePropertyin interfaceValidator- Specified by:
validatePropertyin interfacejakarta.validation.Validator
-
validateProperty
public <T> Set<jakarta.validation.ConstraintViolation<T>> validateProperty(T object, String propertyName, BeanValidationContext context) Description copied from interface:ValidatorValidates all constraints placed on the property ofobjectnamedpropertyName.- Specified by:
validatePropertyin interfaceValidator- Type Parameters:
T- the type of the object to validate- Parameters:
object- object to validatepropertyName- property to validate (i.e. field and getter constraints)context- The context- Returns:
- constraint violations or an empty set if none
-
validateValue
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateValue(@NonNull @NonNull Class<T> beanType, @NonNull @NonNull String propertyName, @Nullable @Nullable Object value, @NonNull @NonNull Class<?>... groups) - Specified by:
validateValuein interfaceValidator- Specified by:
validateValuein interfacejakarta.validation.Validator
-
validateValue
public <T> Set<jakarta.validation.ConstraintViolation<T>> validateValue(Class<T> beanType, String propertyName, Object value, BeanValidationContext context) Description copied from interface:ValidatorValidates all constraints placed on the property namedpropertyNameof the classbeanTypewould the property value bevalue.ConstraintViolationobjects returnnullforConstraintViolation.getRootBean()andConstraintViolation.getLeafBean().- Specified by:
validateValuein interfaceValidator- Type Parameters:
T- the type of the object to validate- Parameters:
beanType- the bean typepropertyName- property to validatevalue- property value to validatecontext- The context- Returns:
- constraint violations or an empty set if none
-
validatedAnnotatedElement
@NonNull public @NonNull Set<String> validatedAnnotatedElement(@NonNull @NonNull io.micronaut.core.annotation.AnnotatedElement element, @Nullable @Nullable Object value) - Specified by:
validatedAnnotatedElementin interfaceio.micronaut.inject.annotation.AnnotatedElementValidator
-
createValid
@NonNull public <T> T createValid(@NonNull @NonNull Class<T> beanType, Object... arguments) throws jakarta.validation.ConstraintViolationException Description copied from interface:ExecutableMethodValidatorCreate a new valid instance.- Specified by:
createValidin interfaceExecutableMethodValidator- Type Parameters:
T- the generic type- Parameters:
beanType- The typearguments- The arguments- Returns:
- The instance
- Throws:
jakarta.validation.ConstraintViolationException- If a valid instance couldn't be constructed
-
getConstraintsForClass
- Specified by:
getConstraintsForClassin interfacejakarta.validation.Validator
-
unwrap
- Specified by:
unwrapin interfacejakarta.validation.Validator
-
forExecutables
Description copied from interface:ValidatorOverridden variation that returns aExecutableMethodValidator.- Specified by:
forExecutablesin interfaceValidator- Specified by:
forExecutablesin interfacejakarta.validation.Validator- Returns:
- The validator
-
validateParameters
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateParameters(@NonNull T object, @NonNull @NonNull io.micronaut.inject.ExecutableMethod method, @NonNull @NonNull Object[] parameterValues, @NonNull @NonNull Class<?>... groups) Description copied from interface:ExecutableMethodValidatorValidate the parameter values of the givenExecutableMethod.- Specified by:
validateParametersin interfaceExecutableMethodValidator- Type Parameters:
T- The object type- Parameters:
object- The objectmethod- The methodparameterValues- The valuesgroups- The groups- Returns:
- The constraint violations.
-
validateParameters
public <T> Set<jakarta.validation.ConstraintViolation<T>> validateParameters(T object, io.micronaut.inject.ExecutableMethod method, @NonNull @NonNull Object[] parameterValues, BeanValidationContext validationContext) Description copied from interface:ExecutableMethodValidatorValidate the parameter values of the givenExecutableMethod.- Specified by:
validateParametersin interfaceExecutableMethodValidator- Type Parameters:
T- The object type- Parameters:
object- The objectmethod- The methodparameterValues- The valuesvalidationContext- The context- Returns:
- The constraint violations.
-
validateParameters
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateParameters(@NonNull T object, @NonNull @NonNull io.micronaut.inject.ExecutableMethod method, @NonNull @NonNull Collection<io.micronaut.core.type.MutableArgumentValue<?>> argumentValues, @NonNull @NonNull Class<?>... groups) Description copied from interface:ExecutableMethodValidatorValidate the parameter values of the givenExecutableMethod.- Specified by:
validateParametersin interfaceExecutableMethodValidator- Type Parameters:
T- The object type- Parameters:
object- The objectmethod- The methodargumentValues- The valuesgroups- The groups- Returns:
- The constraint violations.
-
validateParameters
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateParameters(@NonNull T object, @NonNull @NonNull Method method, @NonNull @NonNull Object[] parameterValues, @NonNull @NonNull Class<?>... groups) - Specified by:
validateParametersin interfaceExecutableMethodValidator- Specified by:
validateParametersin interfacejakarta.validation.executable.ExecutableValidator
-
validateReturnValue
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateReturnValue(@NonNull T object, @NonNull @NonNull Method method, @Nullable @Nullable Object returnValue, @NonNull @NonNull Class<?>... groups) - Specified by:
validateReturnValuein interfaceExecutableMethodValidator- Specified by:
validateReturnValuein interfacejakarta.validation.executable.ExecutableValidator
-
validateReturnValue
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateReturnValue(@NonNull T bean, @NonNull @NonNull io.micronaut.inject.ExecutableMethod<?, Object> executableMethod, @Nullable @Nullable Object returnValue, @NonNull @NonNull Class<?>... groups) Description copied from interface:ExecutableMethodValidatorValidates the return value of aExecutableMethod.- Specified by:
validateReturnValuein interfaceExecutableMethodValidator- Type Parameters:
T- The object type- Parameters:
bean- The objectexecutableMethod- The methodreturnValue- The return valuegroups- The groups- Returns:
- A set of contstraint violations
-
validateReturnValue
public <T> Set<jakarta.validation.ConstraintViolation<T>> validateReturnValue(T bean, io.micronaut.inject.ExecutableMethod<?, Object> executableMethod, Object returnValue, BeanValidationContext validationContext) Description copied from interface:ExecutableMethodValidatorValidates the return value of aExecutableMethod.- Specified by:
validateReturnValuein interfaceExecutableMethodValidator- Type Parameters:
T- The object type- Parameters:
bean- The objectexecutableMethod- The methodreturnValue- The return valuevalidationContext- The validation context- Returns:
- A set of contstraint violations
-
validateConstructorParameters
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateConstructorParameters(@NonNull @NonNull Constructor<? extends T> constructor, @NonNull @NonNull Object[] parameterValues, @NonNull @NonNull Class<?>... groups) - Specified by:
validateConstructorParametersin interfaceExecutableMethodValidator- Specified by:
validateConstructorParametersin interfacejakarta.validation.executable.ExecutableValidator
-
validateConstructorParameters
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateConstructorParameters(@NonNull @NonNull io.micronaut.core.beans.BeanIntrospection<? extends T> introspection, @NonNull @NonNull Object[] parameterValues, @NonNull @NonNull Class<?>... groups) Description copied from interface:ExecutableMethodValidatorValidates parameters for the given introspection and values.- Specified by:
validateConstructorParametersin interfaceExecutableMethodValidator- Type Parameters:
T- The bean type.- Parameters:
introspection- The introspectionparameterValues- The parameter valuesgroups- The groups- Returns:
- The constraint violations
-
validateConstructorParameters
public <T> Set<jakarta.validation.ConstraintViolation<T>> validateConstructorParameters(Class<? extends T> beanType, io.micronaut.core.type.Argument<?>[] constructorArguments, @NonNull @NonNull Object[] parameterValues, @NonNull @NonNull Class<?>[] groups) Description copied from interface:ExecutableMethodValidatorValidates arguments for the given bean type and constructor arguments.- Specified by:
validateConstructorParametersin interfaceExecutableMethodValidator- Type Parameters:
T- The generic type of the bean- Parameters:
beanType- The bean typeconstructorArguments- The constructor argumentsparameterValues- The parameter valuesgroups- The validation groups- Returns:
- A set of constraint violations, if any
-
validateConstructorParameters
public <T> Set<jakarta.validation.ConstraintViolation<T>> validateConstructorParameters(Class<? extends T> beanType, @NonNull @NonNull io.micronaut.core.type.Argument<?>[] constructorArguments, @NonNull @NonNull Object[] parameterValues, BeanValidationContext validationContext) Description copied from interface:ExecutableMethodValidatorValidates arguments for the given bean type and constructor arguments.- Specified by:
validateConstructorParametersin interfaceExecutableMethodValidator- Type Parameters:
T- The generic type of the bean- Parameters:
beanType- The bean typeconstructorArguments- The constructor argumentsparameterValues- The parameter valuesvalidationContext- The validation context- Returns:
- A set of constraint violations, if any
-
validateConstructorReturnValue
@NonNull public <T> @NonNull Set<jakarta.validation.ConstraintViolation<T>> validateConstructorReturnValue(@NonNull @NonNull Constructor<? extends T> constructor, @NonNull T createdObject, @NonNull @NonNull Class<?>... groups) - Specified by:
validateConstructorReturnValuein interfaceExecutableMethodValidator- Specified by:
validateConstructorReturnValuein interfacejakarta.validation.executable.ExecutableValidator
-
validatePublisher
@NonNull public <T> @NonNull org.reactivestreams.Publisher<T> validatePublisher(@NonNull @NonNull io.micronaut.core.type.ReturnType<?> returnType, @NonNull @NonNull org.reactivestreams.Publisher<T> publisher, @NonNull @NonNull Class<?>... groups) Description copied from interface:ReactiveValidatorValidate the given publisher by returning a new Publisher that validates each emitted value. If a constraint violation error occurs aConstraintViolationExceptionwill be thrown.- Specified by:
validatePublisherin interfaceReactiveValidator- Type Parameters:
T- The generic type- Parameters:
returnType- The required type of publisherpublisher- The publishergroups- The groups- Returns:
- The publisher
-
validateCompletionStage
@NonNull public <T> @NonNull CompletionStage<T> validateCompletionStage(@NonNull @NonNull CompletionStage<T> completionStage, @NonNull @NonNull io.micronaut.core.type.Argument<T> argument, @NonNull @NonNull Class<?>... groups) Description copied from interface:ReactiveValidatorValidate the given CompletionStage by returning a new CompletionStage that validates the emitted value. If a constraint violation error occurs aConstraintViolationExceptionwill be thrown.- Specified by:
validateCompletionStagein interfaceReactiveValidator- Type Parameters:
T- The generic type- Parameters:
completionStage- The completion stageargument- The completion stage element argumentgroups- The groups- Returns:
- The publisher
-
validateBeanArgument
public <T> void validateBeanArgument(@NonNull @NonNull io.micronaut.context.BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.inject.InjectionPoint injectionPoint, @NonNull @NonNull io.micronaut.core.type.Argument<T> argument, int index, @Nullable T value) throws io.micronaut.context.exceptions.BeanInstantiationException - Specified by:
validateBeanArgumentin interfaceio.micronaut.inject.validation.BeanDefinitionValidator- Throws:
io.micronaut.context.exceptions.BeanInstantiationException
-
validateBean
public <T> void validateBean(@NonNull @NonNull io.micronaut.context.BeanResolutionContext resolutionContext, @NonNull @NonNull io.micronaut.inject.BeanDefinition<T> definition, @NonNull T bean) throws io.micronaut.context.exceptions.BeanInstantiationException - Specified by:
validateBeanin interfaceio.micronaut.inject.validation.BeanDefinitionValidator- Throws:
io.micronaut.context.exceptions.BeanInstantiationException
-
getBeanIntrospection
@Nullable protected <T> @Nullable io.micronaut.core.beans.BeanIntrospection<T> getBeanIntrospection(@NonNull T object, @NonNull @NonNull Class<T> definedClass) looks up a bean introspection for the given object by instance's class or defined class.- Type Parameters:
T- The introspection type- Parameters:
object- The object, never nulldefinedClass- The defined class of the object, never null- Returns:
- The introspection or null
-
getBeanIntrospection
@Nullable protected <T> @Nullable io.micronaut.core.beans.BeanIntrospection<T> getBeanIntrospection(@NonNull T object) Looks up a bean introspection for the given object.- Type Parameters:
T- The introspection type- Parameters:
object- The object, never null- Returns:
- The introspection or null
-
getBeanIntrospection
@Nullable protected <T> @Nullable io.micronaut.core.beans.BeanIntrospection<T> getBeanIntrospection(@NonNull @NonNull Class<T> type) Looks up a bean introspection for the given object.- Type Parameters:
T- The introspection type- Parameters:
type- The object type- Returns:
- The introspection or null
-
requireNonNull
Deprecated.It will be private in a future version.Throws aIllegalArgumentExceptionif the value is null.- Type Parameters:
T- value Type- Parameters:
name- check namevalue- value being checked- Returns:
- the value
-
requireNonEmpty
Deprecated.It will be private in a future version.Throws aIllegalArgumentExceptionif the value null or an empty string.- Parameters:
name- check namevalue- value being checked- Returns:
- the value
-