001package cn.sticki.validator.spel; 002 003import cn.sticki.validator.spel.result.FieldValidResult; 004 005import java.lang.annotation.Annotation; 006import java.lang.reflect.Field; 007import java.util.Collections; 008import java.util.Set; 009 010/** 011 * Spel 约束校验器。 012 * 013 * @author 阿杆 014 * @version 1.0 015 * @since 2024/4/11 016 */ 017public interface SpelConstraintValidator<A extends Annotation> { 018 019 /** 020 * 校验被标记的注解。 021 * 022 * @param annotation 注解值 023 * @param obj 被校验的对象 024 * @param field 被校验的字段,该字段存在于 obj 中 025 * @return 校验结果 026 */ 027 FieldValidResult isValid(A annotation, Object obj, Field field); 028 029 Set<Class<?>> DEFAULT_SUPPORT_TYPE = Collections.singleton(Object.class); 030 031 /** 032 * 校验器支持的对象类型列表,默认为 Object。 033 */ 034 default Set<Class<?>> supportType() { 035 return DEFAULT_SUPPORT_TYPE; 036 } 037 038}