001package cn.mybatis.mp.generator.template;
002
003import cn.mybatis.mp.generator.config.GeneratorConfig;
004import cn.mybatis.mp.generator.database.meta.EntityInfo;
005import cn.mybatis.mp.generator.util.GeneratorUtil;
006
007import java.time.LocalDate;
008import java.util.HashMap;
009import java.util.Map;
010
011public class ActionTemplateBuilder extends AbstractTemplateBuilder {
012
013    public ActionTemplateBuilder(GeneratorConfig generatorConfig, EntityInfo entityInfo) {
014        super(generatorConfig, entityInfo);
015    }
016
017    @Override
018    public boolean enable() {
019        return generatorConfig.getActionConfig().isEnable();
020    }
021
022    @Override
023    public String targetFilePath() {
024        return generatorConfig.getBaseFilePath() + "/" + (entityInfo.getActionPackage() + "." + entityInfo.getActionName()).replaceAll("\\.", "/") + ".java";
025    }
026
027    @Override
028    public String templateFilePath() {
029        return generatorConfig.getTemplateRootPath() + "/action";
030    }
031
032    @Override
033    public Map<String, Object> contextData() {
034        Map<String, Object> data = new HashMap<>();
035        data.put("imports", GeneratorUtil.buildActionImports(generatorConfig, entityInfo));
036        if (generatorConfig.getActionConfig().getSuperClass() != null) {
037            int dotIndex = generatorConfig.getActionConfig().getSuperClass().lastIndexOf(".");
038            String superName;
039            if (dotIndex > 0) {
040                superName = generatorConfig.getActionConfig().getSuperClass().substring(dotIndex + 1);
041            } else {
042                superName = generatorConfig.getActionConfig().getSuperClass();
043            }
044            data.put("superExtend", "extends " + superName);
045        } else {
046            data.put("superExtend", "");
047        }
048        data.put("date", LocalDate.now().toString());
049        data.put("author", generatorConfig.getAuthor());
050        data.put("entityInfo", entityInfo);
051        data.put("serviceConfig", generatorConfig.getServiceConfig());
052        data.put("actionConfig", generatorConfig.getActionConfig());
053        return data;
054    }
055}