ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/ValidateEnum.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ package org.dromara.common.core.validate.enumd; import jakarta.validation.Constraint; import jakarta.validation.Payload; import java.lang.annotation.*; import static java.lang.annotation.ElementType.*; import static java.lang.annotation.RetentionPolicy.RUNTIME; /** * èªå®ä¹æä¸¾æ ¡éªæ³¨è§£ * * @author ç§è¾æªå¯ * @date 2024-12-09 */ @Documented @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE}) @Retention(RUNTIME) @Repeatable(EnumPattern.List.class) // å 许å¨åä¸å ç´ ä¸å¤æ¬¡ä½¿ç¨è¯¥æ³¨è§£ @Constraint(validatedBy = {EnumPatternValidator.class}) public @interface EnumPattern { Class<? extends ValidateEnum> type() default ValidateEnum.class; String message() default "è¾å ¥å¼ä¸å¨æä¸¾èå´å "; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; @Documented @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE}) @Retention(RUNTIME) @interface List { EnumPattern[] value(); } } ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package org.dromara.common.core.validate.enumd; import org.dromara.common.core.utils.StringUtils; import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; import jakarta.validation.ValidationException; import lombok.extern.slf4j.Slf4j; /** * èªå®ä¹æä¸¾æ ¡éªæ³¨è§£å®ç° * * @author ç§è¾æªå¯ * @date 2024-12-09 */ public class EnumPatternValidator implements ConstraintValidator<EnumPattern, String> { private EnumPattern annotation;; @Override public void initialize(EnumPattern annotation) { ConstraintValidator.super.initialize(annotation); this.annotation = annotation; } @Override public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { try { if (StringUtils.isNotBlank(value)) { Class<? extends ValidateEnum> type = annotation.type(); ValidateEnum[] constants = type.getEnumConstants(); for (ValidateEnum e : constants) { if (e.validate(value)) { return true; } } } return false; } catch (Exception e) { throw new ValidationException(e); } } } ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/ValidateEnum.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package org.dromara.common.core.validate.enumd; import org.dromara.common.core.utils.StringUtils; /** * æä¸¾ç±»åæ ¡éªæ¥å£ * * @author ç§è¾æªå¯ * @date 2024-12-09 */ public interface ValidateEnum { /** * è·åæä¸¾code * <pre>该codeç¨äºå¹é </pre> * @return æä¸¾code */ String getCode(); /** * æ ¡éªæä¸¾code * @param code æä¸¾code * @return æ ¡éªç»æ */ default boolean validate(String code) { return StringUtils.equals(code, getCode()); } }