Interface HibernateConstraintValidatorContext
- All Superinterfaces:
ConstraintValidatorContext
- All Known Subinterfaces:
HibernateCrossParameterConstraintValidatorContext
- All Known Implementing Classes:
ConstraintValidatorContextImpl
,CrossParameterConstraintValidatorContextImpl
A custom
ConstraintValidatorContext
which allows to set additional message parameters for
interpolation.- Author:
- Hardy Ferentschik, Gunnar Morling, Guillaume Smet
-
Nested Class Summary
Nested classes/interfaces inherited from interface jakarta.validation.ConstraintValidatorContext
ConstraintValidatorContext.ConstraintViolationBuilder
-
Method Summary
Modifier and TypeMethodDescriptionaddExpressionVariable
(String name, Object value) Allows to set an additional expression variable which will be available as an EL variable during interpolation.addMessageParameter
(String name, Object value) Allows to set an additional named parameter which can be interpolated in the constraint violation message.buildConstraintViolationWithTemplate
(String messageTemplate) <C> C
getConstraintValidatorPayload
(Class<C> type) Returns an instance of the specified type ornull
if the current constraint validator payload isn't of the given type.withDynamicPayload
(Object payload) Allows to set an object that may further describe the violation.Methods inherited from interface jakarta.validation.ConstraintValidatorContext
disableDefaultConstraintViolation, getClockProvider, getDefaultConstraintMessageTemplate, unwrap
-
Method Details
-
buildConstraintViolationWithTemplate
- Specified by:
buildConstraintViolationWithTemplate
in interfaceConstraintValidatorContext
-
addMessageParameter
Allows to set an additional named parameter which can be interpolated in the constraint violation message. The variable will be available for interpolation for all constraint violations generated for this constraint. This includes the default one as well as all violations created by theConstraintValidatorContext.ConstraintViolationBuilder
. To create multiple constraint violations with different variable values, this method can be called between successive calls toConstraintValidatorContext.ConstraintViolationBuilder.addConstraintViolation()
.For example:
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { HibernateConstraintValidatorContext context = constraintValidatorContext.unwrap( HibernateConstraintValidatorContext.class ); context.addMessageParameter( "foo", "bar" ); context.buildConstraintViolationWithTemplate( "{foo}" ) .addConstraintViolation(); context.addMessageParameter( "foo", "snafu" ); context.buildConstraintViolationWithTemplate( "{foo}" ) .addConstraintViolation(); return false; }
- Parameters:
name
- the name under which to bind the parameter, cannot benull
value
- the value to be bound to the specified name- Returns:
- a reference to itself to allow method chaining
- Throws:
IllegalArgumentException
- in case the provided name isnull
- Since:
- 5.4.1
-
addExpressionVariable
Allows to set an additional expression variable which will be available as an EL variable during interpolation. The variable will be available for interpolation for all constraint violations generated for this constraint. This includes the default one as well as all violations created by theConstraintValidatorContext.ConstraintViolationBuilder
. To create multiple constraint violations with different variable values, this method can be called between successive calls toConstraintValidatorContext.ConstraintViolationBuilder.addConstraintViolation()
.For example:
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { HibernateConstraintValidatorContext context = constraintValidatorContext.unwrap( HibernateConstraintValidatorContext.class ); context.addExpressionVariable( "foo", "bar" ); context.buildConstraintViolationWithTemplate( "${foo}" ) .addConstraintViolation(); context.addExpressionVariable( "foo", "snafu" ); context.buildConstraintViolationWithTemplate( "${foo}" ) .addConstraintViolation(); return false; }
- Parameters:
name
- the name under which to bind the expression variable, cannot benull
value
- the value to be bound to the specified name- Returns:
- a reference to itself to allow method chaining
- Throws:
IllegalArgumentException
- in case the provided name isnull
-
withDynamicPayload
Allows to set an object that may further describe the violation. The user is responsible himself to ensure that this payload is serializable in case thejakarta.validation.ConstraintViolation
has to be serialized.- Parameters:
payload
- an object representing additional information about the violation- Returns:
- a reference to itself to allow method chaining
- Since:
- 5.3
-
getConstraintValidatorPayload
Returns an instance of the specified type ornull
if the current constraint validator payload isn't of the given type.- Parameters:
type
- the type of payload to retrieve- Returns:
- an instance of the specified type or
null
if the current constraint validator payload isn't of the given type - Since:
- 6.0.9
- See Also:
-