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}