public boolean isValid(final Object value, final ConstraintValidatorContext context) {
   boolean isValid = false;
   BeanWrapper beanWrapper = new BeanWrapperImpl(value);
   final Object field = beanWrapper.getPropertyValue(constraint.field());
   final Object match = beanWrapper.getPropertyValue(constraint.match());
   isValid = field == match || field != null && field.equals(match);
   if (!isValid) {
     context
         .buildConstraintViolationWithTemplate(constraint.message())
         .addNode(constraint.match())
         .addConstraintViolation();
   }
   return isValid;
 }