
com.quhaodian.imake.command.ActionCommand Maven / Gradle / Ivy
package com.quhaodian.imake.command;
import freemarker.cache.ClassTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.apache.commons.chain.Command;
import org.apache.commons.chain.Context;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileWriter;
public class ActionCommand implements Command {
private Logger logger = LoggerFactory.getLogger(getClass());
public boolean execute(Context context) throws Exception {
boolean isAction=(Boolean) context.get("isAction");
if (!isAction) {
return false;
}
logger.info("Action接口和实现生成");
logger.info("Dao接口和实现生成");
Class> codedir=(Class>) context.get("codeDir");
ClassTemplateLoader ctl = new ClassTemplateLoader(codedir, "/"+codedir.getName().replace(codedir.getSimpleName(),"").replace(".","/"));
Configuration config = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
config.setTemplateLoader(ctl);
Template template = null;
Boolean catalog = (Boolean) context.get("catalog");
if (catalog){
template = config.getTemplate("catalog_action.ftl");
}else{
template = config.getTemplate("action.ftl");
}
Class> entity = (Class>) context.get("entity");
String action=(String) context.get("action");
String path = action.replaceAll("\\.", "/");
System.out.println(path);
String b=entity.getResource("/").getFile();
b=b.replace("/target/classes", "/src/main/java")+path;
File actiondir=new File(b);
if (!actiondir.exists()) {
actiondir.mkdirs();
}
File daodirfile = new File(b, entity.getSimpleName() + "Action.java");
FileWriter writer = new FileWriter(daodirfile);
template.process(context, writer);
return false;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy