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 ServiceImplTemplateBuilder extends AbstractTemplateBuilder { 012 013 public ServiceImplTemplateBuilder(GeneratorConfig generatorConfig, EntityInfo entityInfo) { 014 super(generatorConfig, entityInfo); 015 } 016 017 @Override 018 public boolean enable() { 019 return generatorConfig.getServiceConfig().isEnable(); 020 } 021 022 @Override 023 public String targetFilePath() { 024 return generatorConfig.getBaseFilePath() + "/" + (entityInfo.getServiceImplPackage() + "." + entityInfo.getServiceImplName()).replaceAll("\\.", "/") + ".java"; 025 } 026 027 @Override 028 public String templateFilePath() { 029 return generatorConfig.getTemplateRootPath() + "/service.impl"; 030 } 031 032 @Override 033 public Map<String, Object> contextData() { 034 Map<String, Object> data = new HashMap<>(); 035 data.put("imports", GeneratorUtil.buildServiceImplImports(generatorConfig, entityInfo)); 036 if (generatorConfig.getServiceImplConfig().getSuperClass() != null) { 037 int dotIndex = generatorConfig.getServiceImplConfig().getSuperClass().lastIndexOf("."); 038 String superName; 039 if (dotIndex > 0) { 040 superName = generatorConfig.getServiceImplConfig().getSuperClass().substring(dotIndex + 1); 041 } else { 042 superName = generatorConfig.getServiceImplConfig().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("daoConfig", generatorConfig.getDaoConfig()); 052 data.put("serviceConfig", generatorConfig.getServiceConfig()); 053 data.put("serviceImplConfig", generatorConfig.getServiceImplConfig()); 054 return data; 055 } 056}