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 MapperTemplateBuilder extends AbstractTemplateBuilder { 012 013 public MapperTemplateBuilder(GeneratorConfig generatorConfig, EntityInfo entityInfo) { 014 super(generatorConfig, entityInfo); 015 } 016 017 @Override 018 public String targetFilePath() { 019 return generatorConfig.getBaseFilePath() + "/" + (entityInfo.getMapperPackage() + "." + entityInfo.getMapperName()).replaceAll("\\.", "/") + ".java"; 020 } 021 022 @Override 023 public String templateFilePath() { 024 return generatorConfig.getTemplateRootPath() + "/mapper"; 025 } 026 027 @Override 028 public Map<String, Object> contextData() { 029 Map<String, Object> data = new HashMap<>(); 030 data.put("imports", GeneratorUtil.buildMapperImports(generatorConfig, entityInfo)); 031 if (generatorConfig.getMapperConfig().getSuperClass() != null) { 032 int dotIndex = generatorConfig.getMapperConfig().getSuperClass().lastIndexOf("."); 033 String superName; 034 if (dotIndex > 0) { 035 superName = generatorConfig.getMapperConfig().getSuperClass().substring(dotIndex + 1); 036 } else { 037 superName = generatorConfig.getMapperConfig().getSuperClass(); 038 } 039 data.put("superExtend", "extends " + superName); 040 } else { 041 data.put("superExtend", ""); 042 } 043 data.put("date", LocalDate.now().toString()); 044 data.put("author", generatorConfig.getAuthor()); 045 data.put("entityInfo", entityInfo); 046 data.put("mapperConfig", generatorConfig.getMapperConfig()); 047 return data; 048 } 049}