Files
timi-spring/src/main/java/com/imyeyu/spring/util/AbstractValidator.java
2026-03-16 15:42:25 +08:00

38 lines
1.0 KiB
Java

package com.imyeyu.spring.util;
import com.imyeyu.java.TimiJava;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import java.lang.annotation.Annotation;
/**
* 数据验证动态消息返回抽象类
*
* @param <A> 注解类型
* @param <T> 校验数据类型
* @author 夜雨
* @version 2023-05-07 00:08
*/
public abstract class AbstractValidator<A extends Annotation, T> implements ConstraintValidator<A, T> {
/**
* 验证处理器,入参验证数据,返回错误消息语言映射,返回 null 时表示通过验证
*
* @param t 验证数据
* @return 验证消息回调
*/
protected abstract String inspector(T t);
@Override
public boolean isValid(T value, ConstraintValidatorContext context) {
String msgKey = inspector(value);
if (TimiJava.isNotEmpty(msgKey)) {
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate(msgKey).addConstraintViolation();
return false;
}
return true;
}
}