Class ConstraintViolationImpl<T>

java.lang.Object
org.hibernate.validator.internal.engine.ConstraintViolationImpl<T>
All Implemented Interfaces:
ConstraintViolation<T>, Serializable, HibernateConstraintViolation<T>

public class ConstraintViolationImpl<T> extends Object implements HibernateConstraintViolation<T>, Serializable
Author:
Emmanuel Bernard, Hardy Ferentschik
See Also:
  • Method Details

    • forBeanValidation

      public static <T> ConstraintViolation<T> forBeanValidation(String messageTemplate, Map<String,Object> messageParameters, Map<String,Object> expressionVariables, String interpolatedMessage, Class<T> rootBeanClass, T rootBean, Object leafBeanInstance, Object value, Path propertyPath, ConstraintDescriptor<?> constraintDescriptor, Object dynamicPayload)
    • forParameterValidation

      public static <T> ConstraintViolation<T> forParameterValidation(String messageTemplate, Map<String,Object> messageParameters, Map<String,Object> expressionVariables, String interpolatedMessage, Class<T> rootBeanClass, T rootBean, Object leafBeanInstance, Object value, Path propertyPath, ConstraintDescriptor<?> constraintDescriptor, Object[] executableParameters, Object dynamicPayload)
    • forReturnValueValidation

      public static <T> ConstraintViolation<T> forReturnValueValidation(String messageTemplate, Map<String,Object> messageParameters, Map<String,Object> expressionVariables, String interpolatedMessage, Class<T> rootBeanClass, T rootBean, Object leafBeanInstance, Object value, Path propertyPath, ConstraintDescriptor<?> constraintDescriptor, Object executableReturnValue, Object dynamicPayload)
    • getMessage

      public final String getMessage()
      Specified by:
      getMessage in interface ConstraintViolation<T>
      Returns:
      the interpolated error message for this constraint violation
    • getMessageTemplate

      public final String getMessageTemplate()
      Specified by:
      getMessageTemplate in interface ConstraintViolation<T>
      Returns:
      the non-interpolated error message for this constraint violation
    • getMessageParameters

      public Map<String,Object> getMessageParameters()
      Returns:
      the message parameters added using HibernateConstraintValidatorContext.addMessageParameter(String, Object)
    • getExpressionVariables

      public Map<String,Object> getExpressionVariables()
      Returns:
      the expression variables added using HibernateConstraintValidatorContext.addExpressionVariable(String, Object)
    • getRootBean

      public final T getRootBean()
      Description copied from interface: ConstraintViolation
      Returns the root bean being validated. For method validation, returns the object the method is executed on.

      Returns null when:

      Specified by:
      getRootBean in interface ConstraintViolation<T>
      Returns:
      the validated object, the object hosting the validated element or null
    • getRootBeanClass

      public final Class<T> getRootBeanClass()
      Description copied from interface: ConstraintViolation
      Returns the class of the root bean being validated. For method validation, this is the object class the method is executed on. For constructor validation, this is the class the constructor is declared on.
      Specified by:
      getRootBeanClass in interface ConstraintViolation<T>
      Returns:
      the class of the root bean or of the object hosting the validated element
    • getLeafBean

      public final Object getLeafBean()
      Description copied from interface: ConstraintViolation
      Returns:
      • the bean instance the constraint is applied on if it is a bean constraint
      • the bean instance hosting the property the constraint is applied on if it is a property constraint or a container element constraint hosted on a property
      • null when the ConstraintViolation is returned after calling Validator.validateValue(Class, String, Object, Class[])
      • the object the method is executed on if it is a method parameter, cross-parameter or return value constraint or a container element constraint hosted on a method parameter or return value
      • null if it is a constructor parameter or cross-parameter constraint or a container element constraint hosted on a constructor parameter
      • the object the constructor has created if it is a constructor return value constraint
      Specified by:
      getLeafBean in interface ConstraintViolation<T>
      Returns:
      the leaf bean
    • getInvalidValue

      public final Object getInvalidValue()
      Description copied from interface: ConstraintViolation
      Returns the value failing to pass the constraint. For cross-parameter constraints, an Object[] representing the method invocation arguments is returned.
      Specified by:
      getInvalidValue in interface ConstraintViolation<T>
      Returns:
      the value failing to pass the constraint
    • getPropertyPath

      public final Path getPropertyPath()
      Specified by:
      getPropertyPath in interface ConstraintViolation<T>
      Returns:
      the property path to the value from rootBean
    • getConstraintDescriptor

      public final ConstraintDescriptor<?> getConstraintDescriptor()
      Description copied from interface: ConstraintViolation
      Returns the constraint metadata reported to fail. The returned instance is immutable.
      Specified by:
      getConstraintDescriptor in interface ConstraintViolation<T>
      Returns:
      constraint metadata
    • unwrap

      public <C> C unwrap(Class<C> type)
      Description copied from interface: ConstraintViolation
      Returns an instance of the specified type allowing access to provider-specific APIs. If the Jakarta Bean Validation provider implementation does not support the specified class, ValidationException is thrown.
      Specified by:
      unwrap in interface ConstraintViolation<T>
      Type Parameters:
      C - the type of the object to be returned
      Parameters:
      type - the class of the object to be returned
      Returns:
      an instance of the specified class
    • getExecutableParameters

      public Object[] getExecutableParameters()
      Description copied from interface: ConstraintViolation
      Returns an Object[] representing the constructor or method invocation arguments if the ConstraintViolation is returned after validating the method or constructor parameters. Returns null otherwise.
      Specified by:
      getExecutableParameters in interface ConstraintViolation<T>
      Returns:
      parameters of the method or constructor invocation or null
    • getExecutableReturnValue

      public Object getExecutableReturnValue()
      Description copied from interface: ConstraintViolation
      Returns the return value of the constructor or method invocation if the ConstraintViolation is returned after validating the method or constructor return value.

      Returns null if the method has no return value. Returns null otherwise.

      Specified by:
      getExecutableReturnValue in interface ConstraintViolation<T>
      Returns:
      the method or constructor return value or null
    • getDynamicPayload

      public <C> C getDynamicPayload(Class<C> type)
      Specified by:
      getDynamicPayload in interface HibernateConstraintViolation<T>
      Parameters:
      type - The type of payload to retrieve
      Returns:
      an instance of the specified type set by the user via HibernateConstraintValidatorContext.withDynamicPayload(Object) or null if no constraint payload if the given type has been set.
    • equals

      public boolean equals(Object o)
      IMPORTANT - some behaviour of Validator depends on the correct implementation of this equals method! (HF)

      messageParameters, expressionVariables and dynamicPayload are not taken into account for equality. These variables solely enrich the actual Constraint Violation with additional information e.g how we actually got to this CV.

      Overrides:
      equals in class Object
      Returns:
      true if the two ConstraintViolation's are considered equals; false otherwise
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object