001package cn.mybatis.mp.generator.template;
002
003import cn.mybatis.mp.generator.config.GeneratorConfig;
004import cn.mybatis.mp.generator.database.meta.EntityInfo;
005
006import java.time.LocalDate;
007import java.util.HashMap;
008import java.util.Map;
009
010public class MapperXmlTemplateBuilder extends AbstractTemplateBuilder {
011
012    public MapperXmlTemplateBuilder(GeneratorConfig generatorConfig, EntityInfo entityInfo) {
013        super(generatorConfig, entityInfo);
014    }
015
016    @Override
017    public boolean enable() {
018        return generatorConfig.getMapperXmlConfig().isEnable();
019    }
020
021    @Override
022    public String targetFilePath() {
023        return generatorConfig.getBaseFilePath() + "/" + (generatorConfig.getMapperXmlConfig().getPackageName() + "." + entityInfo.getName() + generatorConfig.getMapperXmlConfig().getSuffix()).replaceAll("\\.", "/") + ".xml";
024    }
025
026    @Override
027    public String templateFilePath() {
028        return generatorConfig.getTemplateRootPath() + "/mapper.xml";
029    }
030
031    @Override
032    public Map<String, Object> contextData() {
033        Map<String, Object> data = new HashMap<>();
034        data.put("date", LocalDate.now().toString());
035        data.put("author", generatorConfig.getAuthor());
036        data.put("entityInfo", entityInfo);
037        data.put("mapperConfig", generatorConfig.getMapperConfig());
038        data.put("mapperXmlConfig", generatorConfig.getMapperXmlConfig());
039        return data;
040    }
041}