Class ConstraintValidatorContextImpl
java.lang.Object
org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorContextImpl
- All Implemented Interfaces:
ConstraintValidatorContext
,HibernateConstraintValidatorContext
- Direct Known Subclasses:
CrossParameterConstraintValidatorContextImpl
public class ConstraintValidatorContextImpl
extends Object
implements HibernateConstraintValidatorContext
- Author:
- Hardy Ferentschik, Gunnar Morling, Guillaume Smet
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
protected class
Nested classes/interfaces inherited from interface jakarta.validation.ConstraintValidatorContext
ConstraintValidatorContext.ConstraintViolationBuilder
-
Constructor Summary
ConstructorsConstructorDescriptionConstraintValidatorContextImpl
(ClockProvider clockProvider, PathImpl propertyPath, ConstraintDescriptor<?> constraintDescriptor, Object constraintValidatorPayload, ExpressionLanguageFeatureLevel defaultConstraintExpressionLanguageFeatureLevel, ExpressionLanguageFeatureLevel defaultCustomViolationExpressionLanguageFeatureLevel) -
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) final void
final ConstraintDescriptor<?>
<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.protected final PathImpl
final String
<T> T
withDynamicPayload
(Object violationContext) Allows to set an object that may further describe the violation.
-
Constructor Details
-
ConstraintValidatorContextImpl
public ConstraintValidatorContextImpl(ClockProvider clockProvider, PathImpl propertyPath, ConstraintDescriptor<?> constraintDescriptor, Object constraintValidatorPayload, ExpressionLanguageFeatureLevel defaultConstraintExpressionLanguageFeatureLevel, ExpressionLanguageFeatureLevel defaultCustomViolationExpressionLanguageFeatureLevel)
-
-
Method Details
-
disableDefaultConstraintViolation
public final void disableDefaultConstraintViolation()- Specified by:
disableDefaultConstraintViolation
in interfaceConstraintValidatorContext
-
getDefaultConstraintMessageTemplate
- Specified by:
getDefaultConstraintMessageTemplate
in interfaceConstraintValidatorContext
-
buildConstraintViolationWithTemplate
public HibernateConstraintViolationBuilder buildConstraintViolationWithTemplate(String messageTemplate) - Specified by:
buildConstraintViolationWithTemplate
in interfaceConstraintValidatorContext
- Specified by:
buildConstraintViolationWithTemplate
in interfaceHibernateConstraintValidatorContext
-
unwrap
- Specified by:
unwrap
in interfaceConstraintValidatorContext
-
addExpressionVariable
Description copied from interface:HibernateConstraintValidatorContext
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; }
- Specified by:
addExpressionVariable
in interfaceHibernateConstraintValidatorContext
- 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
-
addMessageParameter
Description copied from interface:HibernateConstraintValidatorContext
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; }
- Specified by:
addMessageParameter
in interfaceHibernateConstraintValidatorContext
- 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
-
getClockProvider
- Specified by:
getClockProvider
in interfaceConstraintValidatorContext
-
withDynamicPayload
Description copied from interface:HibernateConstraintValidatorContext
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.- Specified by:
withDynamicPayload
in interfaceHibernateConstraintValidatorContext
- Parameters:
violationContext
- an object representing additional information about the violation- Returns:
- a reference to itself to allow method chaining
-
getConstraintValidatorPayload
Description copied from interface:HibernateConstraintValidatorContext
Returns an instance of the specified type ornull
if the current constraint validator payload isn't of the given type.- Specified by:
getConstraintValidatorPayload
in interfaceHibernateConstraintValidatorContext
- 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 - See Also:
-
getConstraintDescriptor
-
getConstraintViolationCreationContexts
-
getCopyOfBasePath
-