001package cn.sticki.validator.spel.constraintvalidator; 002 003import cn.sticki.validator.spel.SpelConstraintValidator; 004import cn.sticki.validator.spel.constrain.SpelAssert; 005import cn.sticki.validator.spel.exception.SpelArgumentException; 006import cn.sticki.validator.spel.parse.SpelParser; 007import cn.sticki.validator.spel.result.FieldValidResult; 008 009import java.lang.reflect.Field; 010 011/** 012 * {@link SpelAssert} 注解校验器。 013 * 014 * @author 阿杆 015 * @version 1.0 016 * @since 2024/5/1 017 */ 018public class SpelAssertValidator implements SpelConstraintValidator<SpelAssert> { 019 020 @Override 021 public FieldValidResult isValid(SpelAssert annotation, Object obj, Field field) { 022 if (annotation.assertTrue().isEmpty()) { 023 throw new SpelArgumentException("assertTrue must not be empty"); 024 } 025 026 return new FieldValidResult(SpelParser.parse(annotation.assertTrue(), obj, Boolean.class)); 027 } 028 029}