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
,javax.validation.executable.ExecutableValidator
,javax.validation.Validator
- Direct Known Subclasses:
DefaultAnnotatedElementValidator
@Singleton @Primary @Requires(property="micronaut.validator.enabled", value="true", defaultValue="true") public class DefaultValidator extends java.lang.Object implements Validator, ExecutableMethodValidator, ReactiveValidator, io.micronaut.inject.annotation.AnnotatedElementValidator, io.micronaut.inject.validation.BeanDefinitionValidator
Default implementation of theValidator
interface.- Since:
- 1.2
-
-
Field Summary
-
Fields inherited from interface io.micronaut.validation.validator.Validator
ANN_CONSTRAINT, ANN_VALID
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
DefaultValidator(ValidatorConfiguration configuration)
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> T
createValid(java.lang.Class<T> beanType, java.lang.Object... arguments)
Create a new valid instance.ExecutableMethodValidator
forExecutables()
Overridden variation that returns aExecutableMethodValidator
.protected io.micronaut.core.beans.BeanIntrospection<java.lang.Object>
getBeanIntrospection(java.lang.Object object)
looks up a bean introspection for the given object.protected io.micronaut.core.beans.BeanIntrospection<java.lang.Object>
getBeanIntrospection(java.lang.Object object, java.lang.Class<?> definedClass)
looks up a bean introspection for the given object by instance's class or defined class.javax.validation.metadata.BeanDescriptor
getConstraintsForClass(java.lang.Class<?> clazz)
<T> T
unwrap(java.lang.Class<T> type)
<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validate(io.micronaut.core.beans.BeanIntrospection<T> introspection, T object, java.lang.Class<?>... groups)
Validate the given introspection and object.<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validate(T object, java.lang.Class<?>... groups)
<T> void
validateBean(io.micronaut.context.BeanResolutionContext resolutionContext, io.micronaut.inject.BeanDefinition<T> definition, T bean)
<T> void
validateBeanArgument(io.micronaut.context.BeanResolutionContext resolutionContext, io.micronaut.inject.InjectionPoint injectionPoint, io.micronaut.core.type.Argument<T> argument, int index, T value)
<T> java.util.concurrent.CompletionStage<T>
validateCompletionStage(java.util.concurrent.CompletionStage<T> completionStage, java.lang.Class<?>... groups)
Validate the given CompletionStage by returning a new CompletionStage that validates the emitted value.<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateConstructorParameters(io.micronaut.core.beans.BeanIntrospection<? extends T> introspection, java.lang.Object[] parameterValues, java.lang.Class<?>... groups)
Validates parameters for the given introspection and values.<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateConstructorParameters(java.lang.Class<? extends T> beanType, io.micronaut.core.type.Argument<?>[] constructorArguments, java.lang.Object[] parameterValues, java.lang.Class<?>[] groups)
Validates arguments for the given bean type and constructor arguments.<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateConstructorParameters(java.lang.reflect.Constructor<? extends T> constructor, java.lang.Object[] parameterValues, java.lang.Class<?>... groups)
<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateConstructorReturnValue(java.lang.reflect.Constructor<? extends T> constructor, T createdObject, java.lang.Class<?>... groups)
java.util.Set<java.lang.String>
validatedAnnotatedElement(io.micronaut.core.annotation.AnnotatedElement element, java.lang.Object value)
<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateParameters(T object, io.micronaut.inject.ExecutableMethod method, java.lang.Object[] parameterValues, java.lang.Class<?>... groups)
Validate the parameter values of the givenExecutableMethod
.<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateParameters(T object, io.micronaut.inject.ExecutableMethod method, java.util.Collection<io.micronaut.core.type.MutableArgumentValue<?>> argumentValues, java.lang.Class<?>... groups)
Validate the parameter values of the givenExecutableMethod
.<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateParameters(T object, java.lang.reflect.Method method, java.lang.Object[] parameterValues, java.lang.Class<?>... groups)
<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateProperty(T object, java.lang.String propertyName, java.lang.Class<?>... groups)
<T> org.reactivestreams.Publisher<T>
validatePublisher(org.reactivestreams.Publisher<T> publisher, java.lang.Class<?>... groups)
Validate the given publisher by returning a new Publisher that validates each emitted value.<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateReturnValue(T object, io.micronaut.inject.ExecutableMethod<?,java.lang.Object> executableMethod, java.lang.Object returnValue, java.lang.Class<?>... groups)
Validates the return value of aExecutableMethod
.<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateReturnValue(T object, java.lang.reflect.Method method, java.lang.Object returnValue, java.lang.Class<?>... groups)
<T> java.util.Set<javax.validation.ConstraintViolation<T>>
validateValue(java.lang.Class<T> beanType, java.lang.String propertyName, java.lang.Object value, java.lang.Class<?>... groups)
-
-
-
Constructor Detail
-
DefaultValidator
protected DefaultValidator(@NonNull ValidatorConfiguration configuration)
Default constructor.- Parameters:
configuration
- The validator configuration
-
-
Method Detail
-
validate
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validate(@NonNull T object, @Nullable java.lang.Class<?>... groups)
-
validate
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validate(@NonNull io.micronaut.core.beans.BeanIntrospection<T> introspection, @NonNull T object, @Nullable java.lang.Class<?>... groups)
Validate the given introspection and object.
-
validateProperty
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateProperty(@NonNull T object, @NonNull java.lang.String propertyName, @Nullable java.lang.Class<?>... groups)
- Specified by:
validateProperty
in interfaceValidator
- Specified by:
validateProperty
in interfacejavax.validation.Validator
-
validateValue
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateValue(@NonNull java.lang.Class<T> beanType, @NonNull java.lang.String propertyName, @Nullable java.lang.Object value, @Nullable java.lang.Class<?>... groups)
- Specified by:
validateValue
in interfaceValidator
- Specified by:
validateValue
in interfacejavax.validation.Validator
-
validatedAnnotatedElement
@NonNull public java.util.Set<java.lang.String> validatedAnnotatedElement(@NonNull io.micronaut.core.annotation.AnnotatedElement element, @Nullable java.lang.Object value)
- Specified by:
validatedAnnotatedElement
in interfaceio.micronaut.inject.annotation.AnnotatedElementValidator
-
createValid
@NonNull public <T> T createValid(@NonNull java.lang.Class<T> beanType, java.lang.Object... arguments) throws javax.validation.ConstraintViolationException
Description copied from interface:ExecutableMethodValidator
Create a new valid instance.- Specified by:
createValid
in interfaceExecutableMethodValidator
- Type Parameters:
T
- the generic type- Parameters:
beanType
- The typearguments
- The arguments- Returns:
- The instance
- Throws:
javax.validation.ConstraintViolationException
- If a valid instance couldn't be constructed
-
getConstraintsForClass
public javax.validation.metadata.BeanDescriptor getConstraintsForClass(java.lang.Class<?> clazz)
- Specified by:
getConstraintsForClass
in interfacejavax.validation.Validator
-
unwrap
public <T> T unwrap(java.lang.Class<T> type)
- Specified by:
unwrap
in interfacejavax.validation.Validator
-
forExecutables
@NonNull public ExecutableMethodValidator forExecutables()
Description copied from interface:Validator
Overridden variation that returns aExecutableMethodValidator
.- Specified by:
forExecutables
in interfaceValidator
- Specified by:
forExecutables
in interfacejavax.validation.Validator
- Returns:
- The validator
-
validateParameters
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateParameters(@NonNull T object, @NonNull io.micronaut.inject.ExecutableMethod method, @NonNull java.lang.Object[] parameterValues, @Nullable java.lang.Class<?>... groups)
Description copied from interface:ExecutableMethodValidator
Validate the parameter values of the givenExecutableMethod
.- Specified by:
validateParameters
in interfaceExecutableMethodValidator
- Type Parameters:
T
- The object type- Parameters:
object
- The objectmethod
- The methodparameterValues
- The valuesgroups
- The groups- Returns:
- The constraint violations.
-
validateParameters
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateParameters(@NonNull T object, @NonNull io.micronaut.inject.ExecutableMethod method, @NonNull java.util.Collection<io.micronaut.core.type.MutableArgumentValue<?>> argumentValues, @Nullable java.lang.Class<?>... groups)
Description copied from interface:ExecutableMethodValidator
Validate the parameter values of the givenExecutableMethod
.- Specified by:
validateParameters
in 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> java.util.Set<javax.validation.ConstraintViolation<T>> validateParameters(@NonNull T object, @NonNull java.lang.reflect.Method method, @NonNull java.lang.Object[] parameterValues, @Nullable java.lang.Class<?>... groups)
- Specified by:
validateParameters
in interfaceExecutableMethodValidator
- Specified by:
validateParameters
in interfacejavax.validation.executable.ExecutableValidator
-
validateReturnValue
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateReturnValue(@NonNull T object, @NonNull java.lang.reflect.Method method, @Nullable java.lang.Object returnValue, @Nullable java.lang.Class<?>... groups)
- Specified by:
validateReturnValue
in interfaceExecutableMethodValidator
- Specified by:
validateReturnValue
in interfacejavax.validation.executable.ExecutableValidator
-
validateReturnValue
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateReturnValue(@NonNull T object, @NonNull io.micronaut.inject.ExecutableMethod<?,java.lang.Object> executableMethod, @Nullable java.lang.Object returnValue, @Nullable java.lang.Class<?>... groups)
Description copied from interface:ExecutableMethodValidator
Validates the return value of aExecutableMethod
.- Specified by:
validateReturnValue
in interfaceExecutableMethodValidator
- Type Parameters:
T
- The object type- Parameters:
object
- The objectexecutableMethod
- The methodreturnValue
- The return valuegroups
- The groups- Returns:
- A set of contstraint violations
-
validateConstructorParameters
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateConstructorParameters(@NonNull java.lang.reflect.Constructor<? extends T> constructor, @NonNull java.lang.Object[] parameterValues, @Nullable java.lang.Class<?>... groups)
- Specified by:
validateConstructorParameters
in interfaceExecutableMethodValidator
- Specified by:
validateConstructorParameters
in interfacejavax.validation.executable.ExecutableValidator
-
validateConstructorParameters
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateConstructorParameters(@NonNull io.micronaut.core.beans.BeanIntrospection<? extends T> introspection, @NonNull java.lang.Object[] parameterValues, @Nullable java.lang.Class<?>... groups)
Description copied from interface:ExecutableMethodValidator
Validates parameters for the given introspection and values.- Specified by:
validateConstructorParameters
in interfaceExecutableMethodValidator
- Type Parameters:
T
- The bean type.- Parameters:
introspection
- The introspectionparameterValues
- The parameter valuesgroups
- The groups- Returns:
- The constraint violations
-
validateConstructorParameters
public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateConstructorParameters(java.lang.Class<? extends T> beanType, io.micronaut.core.type.Argument<?>[] constructorArguments, @NonNull java.lang.Object[] parameterValues, @Nullable java.lang.Class<?>[] groups)
Description copied from interface:ExecutableMethodValidator
Validates arguments for the given bean type and constructor arguments.- Specified by:
validateConstructorParameters
in 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
-
validateConstructorReturnValue
@NonNull public <T> java.util.Set<javax.validation.ConstraintViolation<T>> validateConstructorReturnValue(@NonNull java.lang.reflect.Constructor<? extends T> constructor, @NonNull T createdObject, @Nullable java.lang.Class<?>... groups)
- Specified by:
validateConstructorReturnValue
in interfaceExecutableMethodValidator
- Specified by:
validateConstructorReturnValue
in interfacejavax.validation.executable.ExecutableValidator
-
getBeanIntrospection
@Nullable protected io.micronaut.core.beans.BeanIntrospection<java.lang.Object> getBeanIntrospection(@NonNull java.lang.Object object, @NonNull java.lang.Class<?> definedClass)
looks up a bean introspection for the given object by instance's class or defined class.- Parameters:
object
- The object, never nulldefinedClass
- The defined class of the object, never null- Returns:
- The introspection or null
-
getBeanIntrospection
@Nullable protected io.micronaut.core.beans.BeanIntrospection<java.lang.Object> getBeanIntrospection(@NonNull java.lang.Object object)
looks up a bean introspection for the given object.- Parameters:
object
- The object, never null- Returns:
- The introspection or null
-
validatePublisher
@NonNull public <T> org.reactivestreams.Publisher<T> validatePublisher(@NonNull org.reactivestreams.Publisher<T> publisher, java.lang.Class<?>... groups)
Description copied from interface:ReactiveValidator
Validate the given publisher by returning a new Publisher that validates each emitted value. If a constraint violation error occurs aConstraintViolationException
will be thrown.- Specified by:
validatePublisher
in interfaceReactiveValidator
- Type Parameters:
T
- The generic type- Parameters:
publisher
- The publishergroups
- The groups- Returns:
- The publisher
-
validateCompletionStage
@NonNull public <T> java.util.concurrent.CompletionStage<T> validateCompletionStage(@NonNull java.util.concurrent.CompletionStage<T> completionStage, java.lang.Class<?>... groups)
Description copied from interface:ReactiveValidator
Validate the given CompletionStage by returning a new CompletionStage that validates the emitted value. If a constraint violation error occurs aConstraintViolationException
will be thrown.- Specified by:
validateCompletionStage
in interfaceReactiveValidator
- Type Parameters:
T
- The generic type- Parameters:
completionStage
- The completion stagegroups
- The groups- Returns:
- The publisher
-
validateBeanArgument
public <T> void validateBeanArgument(@NonNull io.micronaut.context.BeanResolutionContext resolutionContext, @NonNull io.micronaut.inject.InjectionPoint injectionPoint, @NonNull io.micronaut.core.type.Argument<T> argument, int index, @Nullable T value) throws io.micronaut.context.exceptions.BeanInstantiationException
- Specified by:
validateBeanArgument
in interfaceio.micronaut.inject.validation.BeanDefinitionValidator
- Throws:
io.micronaut.context.exceptions.BeanInstantiationException
-
validateBean
public <T> void validateBean(@NonNull io.micronaut.context.BeanResolutionContext resolutionContext, @NonNull io.micronaut.inject.BeanDefinition<T> definition, @NonNull T bean) throws io.micronaut.context.exceptions.BeanInstantiationException
- Specified by:
validateBean
in interfaceio.micronaut.inject.validation.BeanDefinitionValidator
- Throws:
io.micronaut.context.exceptions.BeanInstantiationException
-
-