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.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;

View File

@ -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;

View File

@ -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;

View File

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

View File

@ -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;
/**
* 简单包装对象

View File

@ -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;
/**
* 包装接口

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.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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);
}
/**

View File

@ -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:");
}

View File

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

View File

@ -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:")

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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()}<br>