From 6da1dfbceb04f26cc9b4d7f347420bf87675e96d Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Tue, 18 Feb 2025 22:26:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=20AssertTools=20=E4=BB=A3?= =?UTF-8?q?=E6=9B=BF=20Preconditions=EF=BC=9B=E4=BD=BF=E7=94=A8=20StringTo?= =?UTF-8?q?ols=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plusone/validator/StringValidator.java | 100 +++++++++++++----- .../validator/test/ValidatorTests.java | 11 +- 2 files changed, 76 insertions(+), 35 deletions(-) diff --git a/src/main/java/xyz/zhouxy/plusone/validator/StringValidator.java b/src/main/java/xyz/zhouxy/plusone/validator/StringValidator.java index 92c41cb..6935c83 100644 --- a/src/main/java/xyz/zhouxy/plusone/validator/StringValidator.java +++ b/src/main/java/xyz/zhouxy/plusone/validator/StringValidator.java @@ -6,22 +6,29 @@ import java.util.function.Function; import java.util.function.Supplier; import java.util.regex.Pattern; -import com.google.common.base.Preconditions; - import xyz.zhouxy.plusone.commons.constant.PatternConsts; +import xyz.zhouxy.plusone.commons.util.AssertTools; import xyz.zhouxy.plusone.commons.util.RegexTools; +import xyz.zhouxy.plusone.commons.util.StringTools; +/** + * StringValidator + * + *

+ * 针对文本字段的验证器。 + *

+ * + * @author ZhouXY + */ public class StringValidator extends BasePropertyValidator> { StringValidator(Function getter) { super(getter); } - // ==================== - // ====== String ====== - // ==================== - - // ===== matches ===== + // ================================ + // #region - matches + // ================================ public StringValidator matches(Pattern regex, String errMsg) { return matches(regex, convertExceptionCreator(errMsg)); @@ -40,7 +47,13 @@ public class StringValidator extends BasePropertyValidator matchesOne(Pattern[] regexs, String errMsg) { return matchesOne(regexs, convertExceptionCreator(errMsg)); @@ -76,7 +89,13 @@ public class StringValidator extends BasePropertyValidator matchesAll(Pattern[] regexs, String errMsg) { return matchesAll(regexs, convertExceptionCreator(errMsg)); @@ -112,19 +131,13 @@ public class StringValidator extends BasePropertyValidator notBlank() { return notBlank("This String argument must have text; it must not be null, empty, or blank"); @@ -140,11 +153,17 @@ public class StringValidator extends BasePropertyValidator StringValidator notBlank( Function exceptionCreator) { - withRule(StringValidator::isNotBlank, exceptionCreator); + withRule(StringTools::isNotBlank, exceptionCreator); return this; } - // ===== email ===== + // ================================ + // #endregion - notBlank + // ================================ + + // ================================ + // #region - email + // ================================ public StringValidator email() { return email("The value is not an email address."); @@ -159,10 +178,17 @@ public class StringValidator extends BasePropertyValidator StringValidator email(Function exceptionCreator) { + // TODO [优化] 优化 email 校验 return matches(PatternConsts.EMAIL, exceptionCreator); } - // ====== notEmpty ===== + // ================================ + // #endregion - email + // ================================ + + // ================================ + // #region - notEmpty + // ================================ public StringValidator notEmpty(String errMsg) { return notEmpty(convertExceptionCreator(errMsg)); @@ -178,7 +204,13 @@ public class StringValidator extends BasePropertyValidator isNullOrEmpty(String errMsg) { return isNullOrEmpty(convertExceptionCreator(errMsg)); @@ -194,7 +226,13 @@ public class StringValidator extends BasePropertyValidator length(int length, String errMsg) { return length(length, convertExceptionCreator(errMsg)); @@ -207,7 +245,7 @@ public class StringValidator extends BasePropertyValidator StringValidator length(int length, Function exceptionCreator) { - Preconditions.checkArgument(length >= 0, "The minimum value must be less than the maximum value."); + AssertTools.checkArgument(length >= 0, "The minimum value must be less than the maximum value."); withRule(s -> s != null && s.length() == length, exceptionCreator); return this; } @@ -231,12 +269,16 @@ public class StringValidator extends BasePropertyValidator StringValidator length(int min, int max, Function exceptionCreator) { - Preconditions.checkArgument(min >= 0, "The minimum value must be greater than equal to 0."); - Preconditions.checkArgument(min < max, "The minimum value must be less than the maximum value."); + AssertTools.checkArgument(min >= 0, "The minimum value must be greater than equal to 0."); + AssertTools.checkArgument(min < max, "The minimum value must be less than the maximum value."); withRule(s -> length(s, min, max), exceptionCreator); return this; } + // ================================ + // #endregion - length + // ================================ + @Override protected StringValidator thisObject() { return this; diff --git a/src/test/java/xyz/zhouxy/plusone/validator/test/ValidatorTests.java b/src/test/java/xyz/zhouxy/plusone/validator/test/ValidatorTests.java index b5cc7f4..31a91fd 100644 --- a/src/test/java/xyz/zhouxy/plusone/validator/test/ValidatorTests.java +++ b/src/test/java/xyz/zhouxy/plusone/validator/test/ValidatorTests.java @@ -10,10 +10,9 @@ import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.Test; -import com.google.common.base.Preconditions; - import xyz.zhouxy.plusone.commons.collection.CollectionTools; import xyz.zhouxy.plusone.commons.function.PredicateTools; +import xyz.zhouxy.plusone.commons.util.AssertTools; import xyz.zhouxy.plusone.commons.util.RegexTools; import xyz.zhouxy.plusone.validator.Validator; @@ -43,14 +42,14 @@ class ValidatorTests { // 传入 rule .addRule(command -> { String code = command.getCode(); - Preconditions.checkArgument(Objects.nonNull(code), "验证码不能为空"); - Preconditions.checkArgument(RegexTools.matches(code, CAPTCHA), "验证码不符合规范"); + AssertTools.checkArgument(Objects.nonNull(code), "验证码不能为空"); + AssertTools.checkArgument(RegexTools.matches(code, CAPTCHA), "验证码不符合规范"); }) // 传入 rule .addRule(command -> { String password = command.getPassword(); - Preconditions.checkArgument(StringUtils.isNotEmpty(password), "密码不能为空"); - Preconditions.checkArgument(RegexTools.matches(password, PASSWORD), "密码不符合规范"); + AssertTools.checkArgument(StringUtils.isNotEmpty(password), "密码不能为空"); + AssertTools.checkArgument(RegexTools.matches(password, PASSWORD), "密码不符合规范"); }) // 传入 predicate 和 Supplier .addRule(command -> CollectionTools.isNotEmpty(command.getRoles()),