mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
refactor: 提取工具类。
This commit is contained in:
parent
dc36280e8d
commit
3f786baf6c
@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com).
|
||||||
|
* <p>
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* <p>
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* <p>
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.mybatisflex.processor.util;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件工具类。
|
||||||
|
*
|
||||||
|
* @author 王帅
|
||||||
|
* @since 2023-06-22
|
||||||
|
*/
|
||||||
|
public class FileUtil {
|
||||||
|
|
||||||
|
private FileUtil() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isFromTestSource(String path) {
|
||||||
|
return path.contains("test-sources") || path.contains("test-annotations");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isAbsolutePath(String path) {
|
||||||
|
return path != null && (path.startsWith("/") || path.contains(":"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取项目的根目录,也就是根节点 pom.xml 所在的目录
|
||||||
|
*/
|
||||||
|
public static String getProjectRootPath(String genFilePath) {
|
||||||
|
File file = new File(genFilePath);
|
||||||
|
int count = 20;
|
||||||
|
return getProjectRootPath(file, count);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getProjectRootPath(File file, int count) {
|
||||||
|
if (count <= 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (file.isFile()) {
|
||||||
|
return getProjectRootPath(file.getParentFile(), --count);
|
||||||
|
} else {
|
||||||
|
if (new File(file, "pom.xml").exists() && !new File(file.getParentFile(), "pom.xml").exists()) {
|
||||||
|
return file.getAbsolutePath();
|
||||||
|
} else {
|
||||||
|
return getProjectRootPath(file.getParentFile(), --count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,114 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com).
|
||||||
|
* <p>
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* <p>
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* <p>
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.mybatisflex.processor.util;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字符串工具类。
|
||||||
|
*
|
||||||
|
* @author 王帅
|
||||||
|
* @since 2023-06-22
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("all")
|
||||||
|
public class StrUtil {
|
||||||
|
|
||||||
|
private StrUtil() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* com.mybatisflex.test.entity.Account -> Account
|
||||||
|
*/
|
||||||
|
public static String getClassName(String str) {
|
||||||
|
return str.substring(str.lastIndexOf(".") + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isBlank(String str) {
|
||||||
|
return str == null || str.trim().length() == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String camelToUnderline(String str) {
|
||||||
|
if (isBlank(str)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
int len = str.length();
|
||||||
|
StringBuilder sb = new StringBuilder(len);
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
char c = str.charAt(i);
|
||||||
|
if (Character.isUpperCase(c) && i > 0) {
|
||||||
|
sb.append('_');
|
||||||
|
}
|
||||||
|
sb.append(Character.toLowerCase(c));
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String firstCharToLowerCase(String str) {
|
||||||
|
char firstChar = str.charAt(0);
|
||||||
|
if (firstChar >= 'A' && firstChar <= 'Z') {
|
||||||
|
char[] arr = str.toCharArray();
|
||||||
|
arr[0] += ('a' - 'A');
|
||||||
|
return new String(arr);
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String firstCharToUpperCase(String str) {
|
||||||
|
char firstChar = str.charAt(0);
|
||||||
|
if (firstChar >= 'a' && firstChar <= 'z') {
|
||||||
|
char[] arr = str.toCharArray();
|
||||||
|
arr[0] -= ('a' - 'A');
|
||||||
|
return new String(arr);
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String buildFieldName(String name, String style) {
|
||||||
|
if ("upperCase".equalsIgnoreCase(style)) {
|
||||||
|
return camelToUnderline(name).toUpperCase();
|
||||||
|
} else if ("lowerCase".equalsIgnoreCase(style)) {
|
||||||
|
return camelToUnderline(name).toLowerCase();
|
||||||
|
} else if ("upperCamelCase".equalsIgnoreCase(style)) {
|
||||||
|
return firstCharToUpperCase(name);
|
||||||
|
} else {
|
||||||
|
//lowerCamelCase
|
||||||
|
return firstCharToLowerCase(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String buildTableDefPackage(String entityClass) {
|
||||||
|
StringBuilder guessPackage = new StringBuilder();
|
||||||
|
if (!entityClass.contains(".")) {
|
||||||
|
guessPackage.append("table");
|
||||||
|
} else {
|
||||||
|
guessPackage.append(entityClass, 0, entityClass.lastIndexOf(".")).append(".table");
|
||||||
|
}
|
||||||
|
return guessPackage.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String buildMapperPackage(String entityClass) {
|
||||||
|
if (!entityClass.contains(".")) {
|
||||||
|
return "mapper";
|
||||||
|
} else {
|
||||||
|
String entityPackage = entityClass.substring(0, entityClass.lastIndexOf("."));
|
||||||
|
if (entityPackage.contains(".")) {
|
||||||
|
return entityPackage.substring(0, entityPackage.lastIndexOf(".")) + ".mapper";
|
||||||
|
} else {
|
||||||
|
return "mapper";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user