![JAR search and dependency download from the Maven repository](/logo.png)
com.ktanx.autocoder.task.DefaultTaskProcessor 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.task;
import com.ktanx.autocoder.config.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.util.*;
public class DefaultTaskProcessor implements TaskProcessor {
private RenderHandler renderHandler;
private FileHandler fileHandler;
public DefaultTaskProcessor() {
this.renderHandler = new EnjoyRenderHandler();
this.fileHandler = new DefaultFileHandler();
}
@Override
public void doTask(TableMetaData tableMetaData, CodeTask codeTask, Map> allTaskInfoMap, Configuration configuration) {
Map context = new HashMap<>();
context.putAll(allTaskInfoMap);
context.put("constants", configuration.getConstants());
Set importClasses = this.mappingColumnTypeAndImportClasses(tableMetaData.getColumns(), configuration);
context.put("importClasses", importClasses);
context.put("date", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
context.put("table", tableMetaData);
context.put("packageName", codeTask.getProperties().get(Constants.PACKAGE));
long serialVersionUID = Math.abs(UUID.randomUUID().getLeastSignificantBits());
context.put("serialVersionUID", serialVersionUID);
String template = codeTask.getProperties().get(Constants.TEMPLATE);
String text = renderHandler.renderToString(template, context);
fileHandler.writeToFile(text, tableMetaData, codeTask, configuration);
}
/**
* 添加字段类型需要导入的包
*
* @param columns the columns
* @return the columns import class
*/
protected Set mappingColumnTypeAndImportClasses(List columns, Configuration configuration) {
Set importSet = new HashSet<>();
for (ColumnMetaData column : columns) {
TypeMapping typeMapping = configuration.getTypeMapping(column.getDbType().toUpperCase());
if (typeMapping != null) {
column.defineJavaType(typeMapping.getJavaType());
}
if (!StringUtils.startsWith(column.getJavaType(), "java.lang")) {
importSet.add(column.getJavaType());
}
}
return importSet;
}
public void setRenderHandler(RenderHandler renderHandler) {
this.renderHandler = renderHandler;
}
public void setFileHandler(FileHandler fileHandler) {
this.fileHandler = fileHandler;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy