From db2678803bba6dbd8e79c0e745fabb91542d2d96 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Fri, 24 Feb 2023 11:20:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ----- .../plusone/validator/BaseValidator.java | 2 +- .../validator/InvalidInputException.java | 16 +---------- .../plusone/validator/StringValidator.java | 27 ++++++++++--------- .../validator/test/BaseValidatorTest.java | 11 ++++---- .../validator2/test/BaseValidator2Test.java | 8 +++--- 6 files changed, 26 insertions(+), 44 deletions(-) diff --git a/pom.xml b/pom.xml index 5b572d2..c21194c 100644 --- a/pom.xml +++ b/pom.xml @@ -41,12 +41,6 @@ 5.9.2 test - - cn.hutool - hutool-core - 5.8.12 - test - diff --git a/src/main/java/xyz/zhouxy/plusone/validator/BaseValidator.java b/src/main/java/xyz/zhouxy/plusone/validator/BaseValidator.java index 1782fc9..ae00ac2 100644 --- a/src/main/java/xyz/zhouxy/plusone/validator/BaseValidator.java +++ b/src/main/java/xyz/zhouxy/plusone/validator/BaseValidator.java @@ -13,7 +13,7 @@ public class BaseValidator { private final List> propertyValidators = new ArrayList<>(); protected void withRule(final Predicate rule, final String errorMessage) { - withRule(rule, value -> new InvalidInputException(errorMessage)); + withRule(rule, () -> new InvalidInputException(errorMessage)); } protected void withRule(Predicate rule, Supplier exceptionBuilder) { diff --git a/src/main/java/xyz/zhouxy/plusone/validator/InvalidInputException.java b/src/main/java/xyz/zhouxy/plusone/validator/InvalidInputException.java index b770344..b8066cf 100644 --- a/src/main/java/xyz/zhouxy/plusone/validator/InvalidInputException.java +++ b/src/main/java/xyz/zhouxy/plusone/validator/InvalidInputException.java @@ -1,6 +1,6 @@ package xyz.zhouxy.plusone.validator; -import xyz.zhouxy.plusone.exception.BaseException; +import xyz.zhouxy.plusone.commons.exception.BaseException; /** * 4040200 - 无效的用户输入 @@ -36,18 +36,4 @@ public class InvalidInputException extends BaseException { public InvalidInputException(String msg, Throwable cause) { this(ERROR_CODE, msg, cause); } - - /** - * 不支持的 Principal 类型出现时抛出的异常 - */ - public static InvalidInputException unsupportedPrincipalTypeException() { - return unsupportedPrincipalTypeException("不支持的 PrincipalType"); - } - - /** - * 不支持的 Principal 类型出现时抛出的异常 - */ - public static InvalidInputException unsupportedPrincipalTypeException(String message) { - return new InvalidInputException(4040201, message); - } } diff --git a/src/main/java/xyz/zhouxy/plusone/validator/StringValidator.java b/src/main/java/xyz/zhouxy/plusone/validator/StringValidator.java index b424c46..e3c51c5 100644 --- a/src/main/java/xyz/zhouxy/plusone/validator/StringValidator.java +++ b/src/main/java/xyz/zhouxy/plusone/validator/StringValidator.java @@ -3,11 +3,12 @@ package xyz.zhouxy.plusone.validator; import java.util.List; import java.util.function.Function; import java.util.function.Supplier; +import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; -import xyz.zhouxy.plusone.constant.RegexConsts; -import xyz.zhouxy.plusone.util.RegexUtil; +import xyz.zhouxy.plusone.commons.constant.PatternConsts; +import xyz.zhouxy.plusone.commons.util.RegexUtil; public class StringValidator extends PropertyValidator> { @@ -21,18 +22,18 @@ public class StringValidator extends PropertyValidator matches(String regex, String errMsg) { + public StringValidator matches(Pattern regex, String errMsg) { return matches(regex, convertExceptionCreator(errMsg)); } public StringValidator matches( - String regex, + Pattern regex, Supplier exceptionCreator) { return matches(regex, convertExceptionCreator(exceptionCreator)); } public StringValidator matches( - String regex, + Pattern regex, Function exceptionCreator) { withRule(input -> RegexUtil.matches(input, regex), exceptionCreator); return this; @@ -40,18 +41,18 @@ public class StringValidator extends PropertyValidator matchesOr(String[] regexs, String errMsg) { + public StringValidator matchesOr(Pattern[] regexs, String errMsg) { return matchesOr(regexs, convertExceptionCreator(errMsg)); } public StringValidator matchesOr( - String[] regexs, + Pattern[] regexs, Supplier exceptionCreator) { return matchesOr(regexs, convertExceptionCreator(exceptionCreator)); } public StringValidator matchesOr( - String[] regexs, + Pattern[] regexs, Function exceptionCreator) { withRule(input -> RegexUtil.matchesOr(input, regexs), exceptionCreator); return this; @@ -70,24 +71,24 @@ public class StringValidator extends PropertyValidator StringValidator matchesOr( List regexs, Function exceptionCreator) { - withRule(input -> RegexUtil.matchesOr(input, regexs.toArray(new String[regexs.size()])), exceptionCreator); + withRule(input -> RegexUtil.matchesOr(input, regexs.toArray(new Pattern[regexs.size()])), exceptionCreator); return this; } // ===== matchesAnd ===== - public StringValidator matchesAnd(String[] regexs, String errMsg) { + public StringValidator matchesAnd(Pattern[] regexs, String errMsg) { return matchesAnd(regexs, convertExceptionCreator(errMsg)); } public StringValidator matchesAnd( - String[] regexs, + Pattern[] regexs, Supplier exceptionCreator) { return matchesAnd(regexs, convertExceptionCreator(exceptionCreator)); } public StringValidator matchesAnd( - String[] regexs, + Pattern[] regexs, Function exceptionCreator) { withRule(input -> RegexUtil.matchesAnd(input, regexs), exceptionCreator); return this; @@ -128,7 +129,7 @@ public class StringValidator extends PropertyValidator StringValidator email(Function exceptionCreator) { - return matches(RegexConsts.EMAIL, exceptionCreator); + return matches(PatternConsts.EMAIL, exceptionCreator); } // ====== notEmpty ===== diff --git a/src/test/java/xyz/zhouxy/plusone/validator/test/BaseValidatorTest.java b/src/test/java/xyz/zhouxy/plusone/validator/test/BaseValidatorTest.java index 92082c0..135cf14 100644 --- a/src/test/java/xyz/zhouxy/plusone/validator/test/BaseValidatorTest.java +++ b/src/test/java/xyz/zhouxy/plusone/validator/test/BaseValidatorTest.java @@ -3,10 +3,11 @@ package xyz.zhouxy.plusone.validator.test; import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.regex.Pattern; import org.junit.jupiter.api.Test; -import xyz.zhouxy.plusone.constant.RegexConsts; +import xyz.zhouxy.plusone.commons.constant.PatternConsts; import xyz.zhouxy.plusone.validator.BaseValidator; import xyz.zhouxy.plusone.validator.ValidateUtil; @@ -29,17 +30,17 @@ class RegisterCommandValidator extends BaseValidator { private RegisterCommandValidator() { ruleForString(RegisterCommand::getUsername) .notNull("用户名不能为空") - .matches(RegexConsts.USERNAME, + .matches(PatternConsts.USERNAME, username -> new IllegalArgumentException(String.format("用户名\"%s\"不符合规范", username))); ruleForString(RegisterCommand::getAccount) .notNull("请输入邮箱地址或手机号") - .matchesOr(new String[] { RegexConsts.EMAIL, RegexConsts.MOBILE_PHONE }, "请输入邮箱地址或手机号"); + .matchesOr(new Pattern[] { PatternConsts.EMAIL, PatternConsts.MOBILE_PHONE }, "请输入邮箱地址或手机号"); ruleForString(RegisterCommand::getCode) .notNull("验证码不能为空") - .matches(RegexConsts.CAPTCHA, "验证码不符合规范"); + .matches(PatternConsts.CAPTCHA, "验证码不符合规范"); ruleForString(RegisterCommand::getPassword) .notEmpty("密码不能为空") - .matches(RegexConsts.PASSWORD, "密码不符合规范"); + .matches(PatternConsts.PASSWORD, "密码不符合规范"); ruleForCollection(RegisterCommand::getRoles) .notEmpty(() -> new RuntimeException("角色列表不能为空")); diff --git a/src/test/java/xyz/zhouxy/plusone/validator2/test/BaseValidator2Test.java b/src/test/java/xyz/zhouxy/plusone/validator2/test/BaseValidator2Test.java index c067cc5..9aa5dec 100644 --- a/src/test/java/xyz/zhouxy/plusone/validator2/test/BaseValidator2Test.java +++ b/src/test/java/xyz/zhouxy/plusone/validator2/test/BaseValidator2Test.java @@ -6,10 +6,10 @@ import java.util.Objects; import java.util.function.Predicate; import java.util.regex.Pattern; +import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.Test; -import cn.hutool.core.util.StrUtil; -import xyz.zhouxy.plusone.constant.RegexConsts; +import xyz.zhouxy.plusone.commons.constant.RegexConsts; import xyz.zhouxy.plusone.validator.BaseValidator; class BaseValidator2Test { @@ -30,8 +30,8 @@ class RegisterCommandValidator2 extends BaseValidator { private RegisterCommandValidator2() { ruleForString(RegisterCommand::getUsername) .state(((Predicate) Objects::nonNull) - .and(StrUtil::isNotEmpty) - .and(StrUtil::isNotBlank) + .and(StringUtils::isNotEmpty) + .and(StringUtils::isNotBlank) .and(username -> Pattern.matches(RegexConsts.EMAIL, username)), (username -> new IllegalArgumentException(String.format("用户名\"%s\"不符合规范", username)))); }