![JAR search and dependency download from the Maven repository](/logo.png)
com.ktanx.autocoder.AutoCoder 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;
import com.ktanx.autocoder.config.CodeTask;
import com.ktanx.autocoder.config.Configuration;
import com.ktanx.autocoder.config.TableMetaData;
import com.ktanx.autocoder.db.DatabaseProcessor;
import com.ktanx.autocoder.db.MysqlProcessor;
import com.ktanx.autocoder.parse.ConfigParser;
import com.ktanx.autocoder.parse.xml.XmlConfigParser;
import com.ktanx.autocoder.task.DefaultTaskProcessor;
import com.ktanx.autocoder.task.TaskProcessor;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AutoCoder {
private ConfigParser configParser;
private DatabaseProcessor dbProcessor;
private TaskProcessor taskProcessor;
/**
* 以默认配置文件运行
*/
public static void execute() {
new AutoCoder("autocoder").generate();
}
/**
* 指定配置文件名称,不带后缀
*
* @param configName
*/
public static void execute(String configName) {
new AutoCoder(configName).generate();
}
public AutoCoder() {
this("autocoder");
}
public AutoCoder(String configName) {
this.configParser = new XmlConfigParser(configName);
this.dbProcessor = new MysqlProcessor();
this.taskProcessor = new DefaultTaskProcessor();
}
public void generate() {
Configuration configuration = configParser.parse();
Collection codeTasks = configuration.getCodeTasks();
Map> tableCodeTasks = configuration.getTableCodeTasks();
for (Map.Entry> entry : tableCodeTasks.entrySet()) {
String tableName = entry.getKey();
Map> taskInfoMap = new HashMap<>();
//先初始化及放入所有任务信息,以便在任何任务中都能获取别的任务生成的代码信息,特别只生成service等操作时,能够得到实体信息
for (CodeTask codeTask : codeTasks) {
Map map = new HashMap<>();
map.put("longClassName", codeTask.getLongClassName(tableName));
map.put("shortClassName", codeTask.getShortClassName(tableName));
map.put("firstLowerClassName", codeTask.getFirstLowerClassName(tableName));
map.put("lineThroughClassName", codeTask.getLineThroughClassName(tableName));
map.put("lowerClassName", codeTask.getLowerClassName(tableName));
map.put("upperClassName", codeTask.getUpperClassName(tableName));
map.put("properties", codeTask.getProperties());
map.put("plugins", codeTask.getPlugins());
taskInfoMap.put(codeTask.getName(), map);
}
TableMetaData tableMetaData = dbProcessor.getTableMetaData(tableName, configuration.getJdbcConfig());
List taskList = entry.getValue();
for (String taskName : taskList) {
CodeTask codeTask = configuration.getCodeTask(taskName);
taskProcessor.doTask(tableMetaData, codeTask, taskInfoMap, configuration);
}
}
}
public void setConfigParser(ConfigParser configParser) {
this.configParser = configParser;
}
public void setDbProcessor(DatabaseProcessor dbProcessor) {
this.dbProcessor = dbProcessor;
}
public void setTaskProcessor(TaskProcessor taskProcessor) {
this.taskProcessor = taskProcessor;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy