This commit is contained in:
Looly 2023-12-05 13:27:11 +08:00
parent 71d4cea0c5
commit 5ceaa07fad
23 changed files with 45 additions and 37 deletions

View File

@ -14,7 +14,7 @@ package org.dromara.hutool.core.array;
import org.dromara.hutool.core.collection.iter.ArrayIter; import org.dromara.hutool.core.collection.iter.ArrayIter;
import org.dromara.hutool.core.convert.Convert; 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.Assert;
import org.dromara.hutool.core.lang.Validator; import org.dromara.hutool.core.lang.Validator;
import org.dromara.hutool.core.reflect.ClassUtil; import org.dromara.hutool.core.reflect.ClassUtil;

View File

@ -13,7 +13,7 @@
package org.dromara.hutool.core.io; package org.dromara.hutool.core.io;
import org.dromara.hutool.core.lang.Assert; 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.IOException;
import java.io.Reader; import java.io.Reader;

View File

@ -12,7 +12,7 @@
package org.dromara.hutool.core.io.file; 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.lang.Assert;
import org.dromara.hutool.core.util.CharsetUtil; import org.dromara.hutool.core.util.CharsetUtil;
import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.ObjUtil;

View File

@ -12,7 +12,7 @@
/** /**
* 建造者工具<br> * 建造者工具<br>
* 用于建造特定对象或结果 * 用于建造特定对象或结果建造者模式的抽象
* *
* @author looly * @author looly
* *

View File

@ -10,7 +10,7 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
*/ */
package org.dromara.hutool.core.func; package org.dromara.hutool.core.lang.wrapper;
/** /**
* 简单包装对象 * 简单包装对象

View File

@ -10,7 +10,7 @@
* See the Mulan PSL v2 for more details. * See the Mulan PSL v2 for more details.
*/ */
package org.dromara.hutool.core.func; package org.dromara.hutool.core.lang.wrapper;
/** /**
* 包装接口 * 包装接口

View File

@ -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.
*/
/**
* 提供包装对象的抽象<br>
* 通过包装接口实现装饰模式或代理模式以增强或目标对象功能
*/
package org.dromara.hutool.core.lang.wrapper;

View File

@ -15,7 +15,7 @@ package org.dromara.hutool.core.map;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Assert; 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.reflect.ClassUtil;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.ObjUtil;

View File

@ -13,7 +13,7 @@
package org.dromara.hutool.core.map; package org.dromara.hutool.core.map;
import org.dromara.hutool.core.lang.Assert; 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 org.dromara.hutool.core.util.ObjUtil;
import java.io.IOException; import java.io.IOException;

View File

@ -12,7 +12,7 @@
package org.dromara.hutool.crypto; 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 javax.crypto.Cipher;
import java.security.InvalidAlgorithmParameterException; import java.security.InvalidAlgorithmParameterException;

View File

@ -14,7 +14,7 @@ package org.dromara.hutool.crypto.digest;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.codec.HexUtil; 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.IORuntimeException;
import org.dromara.hutool.core.io.IoUtil; import org.dromara.hutool.core.io.IoUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;

View File

@ -140,13 +140,10 @@ public class DriverIdentifier {
return null; return null;
} }
for (final DriverMatcher driverMatcher : this.matcherList) { return this.matcherList.stream()
if (driverMatcher.isMatch(jdbcUrl)) { .filter(driverMatcher -> driverMatcher.test(jdbcUrl))
return driverMatcher.getClassName(); .findFirst()
} .map(DriverMatcher::getClassName).orElse(null);
}
return null;
} }
/** /**

View File

@ -28,7 +28,7 @@ public class Db2DriverMatcher implements DriverMatcher {
private String jdbcUrl; private String jdbcUrl;
@Override @Override
public boolean isMatch(final String jdbcUrl) { public boolean test(final String jdbcUrl) {
this.jdbcUrl = jdbcUrl; this.jdbcUrl = jdbcUrl;
return jdbcUrl.startsWith("jdbc:db2:"); return jdbcUrl.startsWith("jdbc:db2:");
} }

View File

@ -12,22 +12,16 @@
package org.dromara.hutool.db.driver.matcher; package org.dromara.hutool.db.driver.matcher;
import java.util.function.Predicate;
/** /**
* 驱动匹配接口通过实现此接口可以<br> * 驱动匹配接口通过实现此接口可以<br>
* 通过{@link #isMatch(String)} 判断JDBC URL 是否匹配驱动的要求<br> * 通过{@link #test(Object)} 判断JDBC URL 是否匹配驱动的要求<br>
* 通过{@link #getClassName()} 获取对应的驱动类名称 * 通过{@link #getClassName()} 获取对应的驱动类名称
* *
* @author looly * @author looly
*/ */
public interface DriverMatcher { public interface DriverMatcher extends Predicate<String> {
/**
* 自定义规则是否匹配 JDBC URL
*
* @param jdbcUrl JDBC URL
* @return 是否匹配
*/
boolean isMatch(final String jdbcUrl);
/** /**
* 获取对应的驱动类名称 * 获取对应的驱动类名称

View File

@ -34,7 +34,7 @@ public class MysqlDriverMatcher implements DriverMatcher {
} }
@Override @Override
public boolean isMatch(final String jdbcUrl) { public boolean test(final String jdbcUrl) {
return jdbcUrl.startsWith("jdbc:mysql:") return jdbcUrl.startsWith("jdbc:mysql:")
// 阿里的Mysql分布式集群 // 阿里的Mysql分布式集群
|| jdbcUrl.startsWith("jdbc:cobar:") || jdbcUrl.startsWith("jdbc:cobar:")

View File

@ -35,7 +35,7 @@ public class StartsWithDriverMatcher implements DriverMatcher {
} }
@Override @Override
public boolean isMatch(final String jdbcUrl) { public boolean test(final String jdbcUrl) {
for (final String startsWithStr : startsWithStrs) { for (final String startsWithStr : startsWithStrs) {
if (jdbcUrl.startsWith(startsWithStr)) { if (jdbcUrl.startsWith(startsWithStr)) {
return true; return true;

View File

@ -14,7 +14,7 @@ package org.dromara.hutool.db.ds;
import org.dromara.hutool.core.exception.CloneException; import org.dromara.hutool.core.exception.CloneException;
import org.dromara.hutool.core.io.IoUtil; 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 javax.sql.DataSource;
import java.io.Closeable; import java.io.Closeable;

View File

@ -12,7 +12,7 @@
package org.dromara.hutool.db.ds.pooled; 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.Array;
import java.sql.Blob; import java.sql.Blob;

View File

@ -14,7 +14,7 @@ package org.dromara.hutool.db.sql;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.collection.iter.ArrayIter; 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 org.dromara.hutool.core.lang.Assert;
import java.io.InputStream; import java.io.InputStream;

View File

@ -12,7 +12,7 @@
package org.dromara.hutool.extra.ssh; 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 org.dromara.hutool.core.io.IORuntimeException;
import java.io.Closeable; import java.io.Closeable;

View File

@ -12,7 +12,7 @@
package org.dromara.hutool.extra.template.engine; 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.Template;
import org.dromara.hutool.extra.template.TemplateConfig; import org.dromara.hutool.extra.template.TemplateConfig;

View File

@ -16,7 +16,7 @@ import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpContext; import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpPrincipal; 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.IOException;
import java.io.InputStream; import java.io.InputStream;

View File

@ -12,7 +12,7 @@
package org.dromara.hutool.json.serialize; 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()}<br> * {@code JSONString}接口定义了一个{@code toJSONString()}<br>