From 5ceaa07fad4f6794f6d17cf2fd40f312d070b179 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 5 Dec 2023 13:27:11 +0800 Subject: [PATCH] fix code --- .../dromara/hutool/core/array/ArrayWrapper.java | 2 +- .../dromara/hutool/core/io/ReaderWrapper.java | 2 +- .../hutool/core/io/file/FileWrapper.java | 2 +- .../hutool/core/lang/builder/package-info.java | 2 +- .../{func => lang/wrapper}/SimpleWrapper.java | 2 +- .../core/{func => lang/wrapper}/Wrapper.java | 2 +- .../hutool/core/lang/wrapper/package-info.java | 17 +++++++++++++++++ .../hutool/core/map/LinkedForestMap.java | 2 +- .../org/dromara/hutool/core/map/MapWrapper.java | 2 +- .../dromara/hutool/crypto/CipherWrapper.java | 2 +- .../dromara/hutool/crypto/digest/Digester.java | 2 +- .../hutool/db/driver/DriverIdentifier.java | 11 ++++------- .../db/driver/matcher/Db2DriverMatcher.java | 2 +- .../hutool/db/driver/matcher/DriverMatcher.java | 14 ++++---------- .../db/driver/matcher/MysqlDriverMatcher.java | 2 +- .../driver/matcher/StartsWithDriverMatcher.java | 2 +- .../org/dromara/hutool/db/ds/DSWrapper.java | 2 +- .../hutool/db/ds/pooled/ConnectionWrapper.java | 2 +- .../dromara/hutool/db/sql/StatementWrapper.java | 2 +- .../org/dromara/hutool/extra/ssh/Session.java | 2 +- .../extra/template/engine/TemplateEngine.java | 2 +- .../hutool/http/server/HttpExchangeWrapper.java | 2 +- .../hutool/json/serialize/JSONStringer.java | 2 +- 23 files changed, 45 insertions(+), 37 deletions(-) rename hutool-core/src/main/java/org/dromara/hutool/core/{func => lang/wrapper}/SimpleWrapper.java (95%) rename hutool-core/src/main/java/org/dromara/hutool/core/{func => lang/wrapper}/Wrapper.java (94%) create mode 100644 hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/package-info.java diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayWrapper.java index eec4d35a8..20a30f66d 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayWrapper.java @@ -14,7 +14,7 @@ package org.dromara.hutool.core.array; import org.dromara.hutool.core.collection.iter.ArrayIter; import org.dromara.hutool.core.convert.Convert; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Validator; import org.dromara.hutool.core.reflect.ClassUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java index 0d99e4000..6c3e19d64 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/ReaderWrapper.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.io; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import java.io.IOException; import java.io.Reader; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java index 1d45f6f9d..2581fe805 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileWrapper.java @@ -12,7 +12,7 @@ package org.dromara.hutool.core.io.file; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.util.CharsetUtil; import org.dromara.hutool.core.util.ObjUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/builder/package-info.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/builder/package-info.java index b032efc4c..2655ddce1 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/builder/package-info.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/builder/package-info.java @@ -12,7 +12,7 @@ /** * 建造者工具
- * 用于建造特定对象或结果 + * 用于建造特定对象或结果,建造者模式的抽象。 * * @author looly * diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/func/SimpleWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/SimpleWrapper.java similarity index 95% rename from hutool-core/src/main/java/org/dromara/hutool/core/func/SimpleWrapper.java rename to hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/SimpleWrapper.java index ef5d51203..c67ba52e7 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/func/SimpleWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/SimpleWrapper.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.func; +package org.dromara.hutool.core.lang.wrapper; /** * 简单包装对象 diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/func/Wrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/Wrapper.java similarity index 94% rename from hutool-core/src/main/java/org/dromara/hutool/core/func/Wrapper.java rename to hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/Wrapper.java index 38fa5d2e4..8fdd77dfa 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/func/Wrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/Wrapper.java @@ -10,7 +10,7 @@ * See the Mulan PSL v2 for more details. */ -package org.dromara.hutool.core.func; +package org.dromara.hutool.core.lang.wrapper; /** * 包装接口 diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/package-info.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/package-info.java new file mode 100644 index 000000000..020c3d21b --- /dev/null +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/wrapper/package-info.java @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2023. looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * https://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +/** + * 提供包装对象的抽象
+ * 通过包装接口,实现装饰模式或代理模式,以增强或目标对象功能。 + */ +package org.dromara.hutool.core.lang.wrapper; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/LinkedForestMap.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/LinkedForestMap.java index fcc2427ea..09d23e17c 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/map/LinkedForestMap.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/LinkedForestMap.java @@ -15,7 +15,7 @@ package org.dromara.hutool.core.map; import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import org.dromara.hutool.core.reflect.ClassUtil; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.util.ObjUtil; diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/map/MapWrapper.java b/hutool-core/src/main/java/org/dromara/hutool/core/map/MapWrapper.java index f6924729a..6d8779a8c 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/map/MapWrapper.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/map/MapWrapper.java @@ -13,7 +13,7 @@ package org.dromara.hutool.core.map; import org.dromara.hutool.core.lang.Assert; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import org.dromara.hutool.core.util.ObjUtil; import java.io.IOException; diff --git a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/CipherWrapper.java b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/CipherWrapper.java index 9a9cc7131..7a4077932 100644 --- a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/CipherWrapper.java +++ b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/CipherWrapper.java @@ -12,7 +12,7 @@ package org.dromara.hutool.crypto; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import javax.crypto.Cipher; import java.security.InvalidAlgorithmParameterException; diff --git a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/digest/Digester.java b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/digest/Digester.java index 739625a38..d17e1a87b 100644 --- a/hutool-crypto/src/main/java/org/dromara/hutool/crypto/digest/Digester.java +++ b/hutool-crypto/src/main/java/org/dromara/hutool/crypto/digest/Digester.java @@ -14,7 +14,7 @@ package org.dromara.hutool.crypto.digest; import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.codec.HexUtil; -import org.dromara.hutool.core.func.SimpleWrapper; +import org.dromara.hutool.core.lang.wrapper.SimpleWrapper; import org.dromara.hutool.core.io.IORuntimeException; import org.dromara.hutool.core.io.IoUtil; import org.dromara.hutool.core.io.file.FileUtil; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverIdentifier.java b/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverIdentifier.java index 278ce3064..28bbcf86d 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverIdentifier.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/driver/DriverIdentifier.java @@ -140,13 +140,10 @@ public class DriverIdentifier { return null; } - for (final DriverMatcher driverMatcher : this.matcherList) { - if (driverMatcher.isMatch(jdbcUrl)) { - return driverMatcher.getClassName(); - } - } - - return null; + return this.matcherList.stream() + .filter(driverMatcher -> driverMatcher.test(jdbcUrl)) + .findFirst() + .map(DriverMatcher::getClassName).orElse(null); } /** diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/Db2DriverMatcher.java b/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/Db2DriverMatcher.java index 11c19d657..0bad7beab 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/Db2DriverMatcher.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/Db2DriverMatcher.java @@ -28,7 +28,7 @@ public class Db2DriverMatcher implements DriverMatcher { private String jdbcUrl; @Override - public boolean isMatch(final String jdbcUrl) { + public boolean test(final String jdbcUrl) { this.jdbcUrl = jdbcUrl; return jdbcUrl.startsWith("jdbc:db2:"); } diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/DriverMatcher.java b/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/DriverMatcher.java index b3f9eb5de..5b65e1e00 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/DriverMatcher.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/DriverMatcher.java @@ -12,22 +12,16 @@ package org.dromara.hutool.db.driver.matcher; +import java.util.function.Predicate; + /** * 驱动匹配接口,通过实现此接口,可以:
- * 通过{@link #isMatch(String)} 判断JDBC URL 是否匹配驱动的要求
+ * 通过{@link #test(Object)} 判断JDBC URL 是否匹配驱动的要求
* 通过{@link #getClassName()} 获取对应的驱动类名称 * * @author looly */ -public interface DriverMatcher { - - /** - * 自定义规则是否匹配 JDBC URL - * - * @param jdbcUrl JDBC URL - * @return 是否匹配 - */ - boolean isMatch(final String jdbcUrl); +public interface DriverMatcher extends Predicate { /** * 获取对应的驱动类名称 diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/MysqlDriverMatcher.java b/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/MysqlDriverMatcher.java index b6a71de8c..bd4c211fa 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/MysqlDriverMatcher.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/MysqlDriverMatcher.java @@ -34,7 +34,7 @@ public class MysqlDriverMatcher implements DriverMatcher { } @Override - public boolean isMatch(final String jdbcUrl) { + public boolean test(final String jdbcUrl) { return jdbcUrl.startsWith("jdbc:mysql:") // 阿里的Mysql分布式集群 || jdbcUrl.startsWith("jdbc:cobar:") diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/StartsWithDriverMatcher.java b/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/StartsWithDriverMatcher.java index c13468cf9..5619ea338 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/StartsWithDriverMatcher.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/driver/matcher/StartsWithDriverMatcher.java @@ -35,7 +35,7 @@ public class StartsWithDriverMatcher implements DriverMatcher { } @Override - public boolean isMatch(final String jdbcUrl) { + public boolean test(final String jdbcUrl) { for (final String startsWithStr : startsWithStrs) { if (jdbcUrl.startsWith(startsWithStr)) { return true; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/ds/DSWrapper.java b/hutool-db/src/main/java/org/dromara/hutool/db/ds/DSWrapper.java index 9c2b6e53b..1109de772 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/ds/DSWrapper.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/ds/DSWrapper.java @@ -14,7 +14,7 @@ package org.dromara.hutool.db.ds; import org.dromara.hutool.core.exception.CloneException; import org.dromara.hutool.core.io.IoUtil; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import javax.sql.DataSource; import java.io.Closeable; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/ds/pooled/ConnectionWrapper.java b/hutool-db/src/main/java/org/dromara/hutool/db/ds/pooled/ConnectionWrapper.java index d8aa16fb7..673b71255 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/ds/pooled/ConnectionWrapper.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/ds/pooled/ConnectionWrapper.java @@ -12,7 +12,7 @@ package org.dromara.hutool.db.ds.pooled; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import java.sql.Array; import java.sql.Blob; diff --git a/hutool-db/src/main/java/org/dromara/hutool/db/sql/StatementWrapper.java b/hutool-db/src/main/java/org/dromara/hutool/db/sql/StatementWrapper.java index e7ecab26f..32869a84d 100644 --- a/hutool-db/src/main/java/org/dromara/hutool/db/sql/StatementWrapper.java +++ b/hutool-db/src/main/java/org/dromara/hutool/db/sql/StatementWrapper.java @@ -14,7 +14,7 @@ package org.dromara.hutool.db.sql; import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.collection.iter.ArrayIter; -import org.dromara.hutool.core.func.SimpleWrapper; +import org.dromara.hutool.core.lang.wrapper.SimpleWrapper; import org.dromara.hutool.core.lang.Assert; import java.io.InputStream; diff --git a/hutool-extra/src/main/java/org/dromara/hutool/extra/ssh/Session.java b/hutool-extra/src/main/java/org/dromara/hutool/extra/ssh/Session.java index 58ebb1f6c..53abf0d4e 100644 --- a/hutool-extra/src/main/java/org/dromara/hutool/extra/ssh/Session.java +++ b/hutool-extra/src/main/java/org/dromara/hutool/extra/ssh/Session.java @@ -12,7 +12,7 @@ package org.dromara.hutool.extra.ssh; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import org.dromara.hutool.core.io.IORuntimeException; import java.io.Closeable; diff --git a/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/TemplateEngine.java b/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/TemplateEngine.java index 11c2e2649..449c2c4ea 100644 --- a/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/TemplateEngine.java +++ b/hutool-extra/src/main/java/org/dromara/hutool/extra/template/engine/TemplateEngine.java @@ -12,7 +12,7 @@ package org.dromara.hutool.extra.template.engine; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import org.dromara.hutool.extra.template.Template; import org.dromara.hutool.extra.template.TemplateConfig; diff --git a/hutool-http/src/main/java/org/dromara/hutool/http/server/HttpExchangeWrapper.java b/hutool-http/src/main/java/org/dromara/hutool/http/server/HttpExchangeWrapper.java index 1d5960044..d3a8a6082 100644 --- a/hutool-http/src/main/java/org/dromara/hutool/http/server/HttpExchangeWrapper.java +++ b/hutool-http/src/main/java/org/dromara/hutool/http/server/HttpExchangeWrapper.java @@ -16,7 +16,7 @@ import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpContext; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpPrincipal; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; import java.io.IOException; import java.io.InputStream; diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/serialize/JSONStringer.java b/hutool-json/src/main/java/org/dromara/hutool/json/serialize/JSONStringer.java index b0b9fea83..981820cbf 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/serialize/JSONStringer.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/serialize/JSONStringer.java @@ -12,7 +12,7 @@ package org.dromara.hutool.json.serialize; -import org.dromara.hutool.core.func.Wrapper; +import org.dromara.hutool.core.lang.wrapper.Wrapper; /** * {@code JSONString}接口定义了一个{@code toJSONString()}