From c6e9994b6831e9cbc845bbd4873a345cc53918fd Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Sat, 7 Jan 2023 00:00:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=87=8D=E8=BD=BD=20state=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plusone/validator/PropertyValidator.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/main/java/xyz/zhouxy/plusone/validator/PropertyValidator.java b/src/main/java/xyz/zhouxy/plusone/validator/PropertyValidator.java index 3ff1d79..2adf9b9 100644 --- a/src/main/java/xyz/zhouxy/plusone/validator/PropertyValidator.java +++ b/src/main/java/xyz/zhouxy/plusone/validator/PropertyValidator.java @@ -1,5 +1,6 @@ package xyz.zhouxy.plusone.validator; +import java.util.Collection; import java.util.Objects; import java.util.function.Consumer; import java.util.function.Function; @@ -109,6 +110,31 @@ abstract class PropertyValidator { return thisObject(); } + // ===== state ===== + + public THIS state(Collection> conditions) { + return state(conditions, "无效的用户输入"); + } + + public THIS state(Collection> conditions, String errMsg) { + return state(conditions, convertExceptionCreator(errMsg)); + } + + public THIS state( + Collection> conditions, + Supplier exceptionCreator) { + return state(conditions, convertExceptionCreator(exceptionCreator)); + } + + public THIS state( + Collection> conditions, + Function exceptionCreator) { + for (Predicate condition : conditions) { + withRule(condition, exceptionCreator); + } + return thisObject(); + } + // ======================================================================== void validate(DTO obj) {