![JAR search and dependency download from the Maven repository](/logo.png)
com.ktanx.autocoder.config.CodeTask Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ktanx-autocoder Show documentation
Show all versions of ktanx-autocoder Show documentation
ktanx-autocoder is a java code generate kit.
The newest version!
package com.ktanx.autocoder.config;
import com.ktanx.common.utils.NameUtils;
import lombok.Builder;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.util.Map;
@Getter
@Builder
public class CodeTask {
/**
* 任务名
*/
private String name;
/**
* 属性
*/
private Map properties;
/**
* 插件
*/
private Map plugins;
/**
* 获取属性值
*
* @param key
* @return
*/
private String getPropertyValue(String key) {
String s = properties.get(key);
return s == null ? "" : s;
}
/**
* 获取生成文件名,含包路径
*
* @param tableName
* @return
*/
public String getGeneratedFileName(String tableName) {
String srcDir = this.getSrcDir();
String longClassName = this.getLongClassName(tableName);
longClassName = StringUtils.replace(longClassName, ".", "/");
String suffix = this.getPropertyValue(Constants.SUFFIX);
String packageFileDir = longClassName + suffix;
return srcDir + File.separator + packageFileDir;
}
/**
* 获取生成目录
*
* @return
*/
public String getSrcDir() {
return this.getPropertyValue(Constants.SRC_DIR);
}
/**
* 获取生成的类名称,含包名
*
* @param tableName
* @return
*/
public String getLongClassName(String tableName) {
String packageName = this.getPropertyValue(Constants.PACKAGE);
String beginRemove = this.getPropertyValue(Constants.BEGIN_REMOVE);
String endRemove = this.getPropertyValue(Constants.END_REMOVE);
String beginFix = this.getPropertyValue(Constants.BEGIN_FIX);
String endFix = this.getPropertyValue(Constants.END_FIX);
String generateName = NameUtils.getCamelName(tableName);
String delimiter = this.getPropertyValue(Constants.DELIMITER);
if (StringUtils.isNotBlank(delimiter)) {
generateName = NameUtils.getLowerDelimiterName(generateName, delimiter);
}
//移除开始指定字符
if (StringUtils.isNotBlank(beginRemove) && StringUtils.startsWithIgnoreCase(generateName, beginRemove)) {
generateName = StringUtils.substring(generateName, beginRemove.length());
}
//移除结尾指定字符
if (StringUtils.isNotBlank(endRemove) && StringUtils.endsWithIgnoreCase(generateName, endRemove)) {
generateName = StringUtils.substring(generateName, 0, generateName.length() - endRemove.length());
}
generateName = NameUtils.getFirstUpperName(generateName);
String upper = this.getPropertyValue(Constants.UPPER);
if (StringUtils.isNotBlank(upper) && Boolean.valueOf(upper)) {
generateName = generateName.toUpperCase();
}
String lower = this.getPropertyValue(Constants.LOWER);
if (StringUtils.isNotBlank(lower) && Boolean.valueOf(lower)) {
generateName = generateName.toLowerCase();
}
return new StringBuilder(packageName).append(".").append(beginFix).append(generateName).append(endFix)
.toString();
}
/**
* 获取生成的类名称,不含包名
*
* @param tableName
* @return
*/
public String getShortClassName(String tableName) {
String longClassName = this.getLongClassName(tableName);
int index = StringUtils.lastIndexOf(longClassName, ".");
return StringUtils.substring(longClassName, index + 1);
}
/**
* 首字母小写类名
*
* @param tableName
* @return
*/
public String getFirstLowerClassName(String tableName) {
return NameUtils.getFirstLowerName(getShortClassName(tableName));
}
/**
* 中划线分隔
*
* @param tableName
* @return
*/
public String getLineThroughClassName(String tableName) {
return NameUtils.getLineThroughName(getShortClassName(tableName));
}
/**
* 小写名
*
* @param tableName
* @return
*/
public String getLowerClassName(String tableName) {
return getShortClassName(tableName).toLowerCase();
}
/**
* 大写名
*
* @param tableName
* @return
*/
public String getUpperClassName(String tableName) {
return getShortClassName(tableName).toUpperCase();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy