From e593d2415ba7fba491a1ed28f0f276299b66c996 Mon Sep 17 00:00:00 2001 From: caoshd Date: Sun, 31 Mar 2024 11:42:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9:=20=E5=88=86=E7=A6=BB?= =?UTF-8?q?=E8=A1=A8=E4=BF=A1=E6=81=AF=E5=92=8C=E7=B1=BB=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../caoshd/otone/builder/InfoClsBuilder.java | 49 ++++++ .../caoshd/otone/builder/InfoOutBuilder.java | 64 ++++++++ .../caoshd/otone/builder/OutputBuilder.java | 47 ------ .../caoshd/otone/builder/SourceBuilder.java | 155 ++++++++++-------- .../caoshd/otone/builder/TableBuilder.java | 14 -- .../space/caoshd/otone/entity/ClassInfo.java | 104 ++++++++++++ .../caoshd/otone/entity/ContextInfo.java | 24 +++ .../space/caoshd/otone/entity/OutputInfo.java | 10 ++ .../space/caoshd/otone/entity/TableInfo.java | 45 ----- .../caoshd/otone/util/VelocityUtils.java | 12 +- src/test/resources/config/config.properties | 1 + 11 files changed, 342 insertions(+), 183 deletions(-) create mode 100644 src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java create mode 100644 src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java delete mode 100644 src/main/java/space/caoshd/otone/builder/OutputBuilder.java create mode 100644 src/main/java/space/caoshd/otone/entity/ClassInfo.java create mode 100644 src/main/java/space/caoshd/otone/entity/ContextInfo.java diff --git a/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java b/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java new file mode 100644 index 0000000..32e061d --- /dev/null +++ b/src/main/java/space/caoshd/otone/builder/InfoClsBuilder.java @@ -0,0 +1,49 @@ +package space.caoshd.otone.builder; + +import space.caoshd.otone.entity.ClassInfo; +import space.caoshd.otone.tool.PropTools; +import space.caoshd.otone.util.CfgUtils; +import space.caoshd.otone.util.PathConsts; +import space.caoshd.otone.util.StrUtils; + +import java.util.List; + +public class InfoClsBuilder { + + private static final PropTools CONFIG = new PropTools(PathConsts.CONFIG_PROPERTIES_PATH); + + private final ClassInfo classInfo = new ClassInfo(); + + private String getTableNameWithoutPrefix(String tableNameWithoutPrefix) { + List tablePrefixes = CONFIG.getStrings(CfgUtils.DATABASE_TABLE_PREFIXES); + for (String tablePrefix : tablePrefixes) { + tableNameWithoutPrefix = StrUtils.removePrefix(tableNameWithoutPrefix, tablePrefix); + } + return tableNameWithoutPrefix; + } + + public InfoClsBuilder setTableName(String tableName) { + String tableNameWithoutPrefix = getTableNameWithoutPrefix(tableName); + String className = StrUtils.toCamelCase(tableNameWithoutPrefix, true); + this.classInfo.setClassName(className); + return this; + } + + public InfoClsBuilder setPackageName(String packageName) { + this.classInfo.setPackageName(packageName); + return this; + } + + public ClassInfo build() { + classInfo.setControllerSuffix(CfgUtils.getControllerNameSuffix()); + classInfo.setFormSuffix(CfgUtils.getFormNameSuffix()); + classInfo.setQuerySuffix(CfgUtils.getQueryNameSuffix()); + classInfo.setViewSuffix(CfgUtils.getViewNameSuffix()); + classInfo.setServiceSuffix(CfgUtils.getServiceNameSuffix()); + classInfo.setServieInterfacePrefix(CfgUtils.getServiceInterfacePrefix()); + classInfo.setMapperSuffix(CfgUtils.getMapperNameSuffix()); + classInfo.setPoSuffix(CfgUtils.getPoNameSuffix()); + return classInfo; + } + +} diff --git a/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java b/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java new file mode 100644 index 0000000..c6ef616 --- /dev/null +++ b/src/main/java/space/caoshd/otone/builder/InfoOutBuilder.java @@ -0,0 +1,64 @@ +package space.caoshd.otone.builder; + +import space.caoshd.otone.entity.OutputInfo; +import space.caoshd.otone.entity.TableInfo; +import space.caoshd.otone.util.CfgUtils; + +import java.util.List; + +public class InfoOutBuilder { + + private OutputInfo outputInfo = new OutputInfo(); + + public InfoOutBuilder init(OutputInfo outputInfo) { + this.outputInfo = outputInfo; + return this; + } + + public InfoOutBuilder setTableInfoList(List tableInfoList) { + this.outputInfo.setTableInfoList(tableInfoList); + return this; + } + + public InfoOutBuilder setTemplatePath(String templatePath) { + this.outputInfo.setTemplatePath(templatePath); + return this; + } + + public InfoOutBuilder setPackagePath(String packagePath) { + this.outputInfo.setPackagePath(packagePath); + return this; + } + + public InfoOutBuilder setNameSuffix(String nameSuffix) { + this.outputInfo.setNameSuffix(nameSuffix); + return this; + } + + public InfoOutBuilder setNamePrefix(String namePrefix) { + this.outputInfo.setNamePrefix(namePrefix); + return this; + } + + public InfoOutBuilder setPackageName(String packageName) { + this.outputInfo.setPackageName(packageName); + return this; + } + + public InfoOutBuilder setClassName(String className) { + String outputPath = CfgUtils.getJavaFilePath( + this.outputInfo.getPackagePath(), + className, + this.outputInfo.getNameSuffix(), + this.outputInfo.getNamePrefix() + ); + this.outputInfo.setOutputPath(outputPath); + return this; + } + + public OutputInfo build() { + return this.outputInfo; + } + + +} diff --git a/src/main/java/space/caoshd/otone/builder/OutputBuilder.java b/src/main/java/space/caoshd/otone/builder/OutputBuilder.java deleted file mode 100644 index 8e2eba3..0000000 --- a/src/main/java/space/caoshd/otone/builder/OutputBuilder.java +++ /dev/null @@ -1,47 +0,0 @@ -package space.caoshd.otone.builder; - -import space.caoshd.otone.entity.OutputInfo; -import space.caoshd.otone.entity.TableInfo; - -import java.util.List; - -public class OutputBuilder { - - private final OutputInfo outputInfo = new OutputInfo(); - - public OutputBuilder setTableInfoList(List tableInfoList) { - this.outputInfo.setTableInfoList(tableInfoList); - return this; - } - - public OutputBuilder setTemplatePath(String templatePath) { - this.outputInfo.setTemplatePath(templatePath); - return this; - } - - public OutputBuilder setPackagePath(String packagePath) { - this.outputInfo.setPackagePath(packagePath); - return this; - } - - public OutputBuilder setNameSuffix(String nameSuffix) { - this.outputInfo.setNameSuffix(nameSuffix); - return this; - } - - public OutputBuilder setNamePrefix(String namePrefix) { - this.outputInfo.setNamePrefix(namePrefix); - return this; - } - - public OutputBuilder setPackageName(String packageName) { - this.outputInfo.setPackageName(packageName); - return this; - } - - public OutputInfo build() { - return outputInfo; - } - - -} diff --git a/src/main/java/space/caoshd/otone/builder/SourceBuilder.java b/src/main/java/space/caoshd/otone/builder/SourceBuilder.java index 83ffebd..542046a 100644 --- a/src/main/java/space/caoshd/otone/builder/SourceBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/SourceBuilder.java @@ -2,13 +2,12 @@ package space.caoshd.otone.builder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import space.caoshd.otone.entity.ClassInfo; +import space.caoshd.otone.entity.ContextInfo; import space.caoshd.otone.entity.OutputInfo; import space.caoshd.otone.entity.TableInfo; import space.caoshd.otone.tool.PropTools; -import space.caoshd.otone.util.CfgUtils; -import space.caoshd.otone.util.FileUtils; -import space.caoshd.otone.util.PathConsts; -import space.caoshd.otone.util.VelocityUtils; +import space.caoshd.otone.util.*; import java.util.Arrays; import java.util.Collections; @@ -89,43 +88,55 @@ public class SourceBuilder { } private void build(TableInfo tableInfo, OutputInfo outputInfo) { - // 获取表信息 配置信息 - String beanName = tableInfo.getClassName(); - String nameSuffix = outputInfo.getNameSuffix(); - String namePrefix = outputInfo.getNamePrefix(); - String packagePath = outputInfo.getPackagePath(); - String packageName = outputInfo.getPackageName(); - - // 添加附加信息 - tableInfo.setExtra(extra); - tableInfo.setClassNameSuffix(nameSuffix); - tableInfo.setClassNamePrefix(namePrefix); - tableInfo.setPackageName(packageName); - // 创建数据文件夹 - FileUtils.mkdir(packagePath); + FileUtils.mkdir(outputInfo.getPackagePath()); + + // 创建上下文环境信息 + ContextInfo contextInfo = new ContextInfo(); + // 设置表信息 + contextInfo.setTableInfo(tableInfo); + // 设置类信息 + ClassInfo classInfo = buildClassInfo(tableInfo, outputInfo); + contextInfo.setConfigInfo(classInfo); + // 获取输出文件路径 - String outputPath = CfgUtils.getJavaFilePath(packagePath, beanName, nameSuffix, namePrefix); + enhanceOutputInfo(outputInfo, classInfo); + String outputPath = outputInfo.getOutputPath(); + // 获取模板文件路径 String templatePath = outputInfo.getTemplatePath(); // 判断输出文件是否已存在 if (!FileUtils.exists(outputPath)) { // 输出文件不存在 直接生成 - VelocityUtils.render(CfgUtils.VALUE_TABLE, tableInfo, templatePath, outputPath); + VelocityUtils.render(templatePath, outputPath, contextInfo); } // 输出文件存在 判断是否可以覆盖 if (CONFIG.getBoolean(CfgUtils.OUTPUT_COVER_IF_EXIST)) { // 配置可以执行覆盖 覆盖生成 - VelocityUtils.render(CfgUtils.VALUE_TABLE, tableInfo, templatePath, outputPath); + VelocityUtils.render(templatePath, outputPath, contextInfo); } else { // 配置不可以执行覆盖 提示错误消息 LOGGER.warn("output file already exists: {}, " + "please remove it or enable auto " + "cover exist file," - + " config.properties should like [output.cover_if_exists=true]", - outputPath + + " config.properties should like [output.cover_if_exists=true]", + outputPath ); } } + private void enhanceOutputInfo(OutputInfo outputInfo, ClassInfo classInfo) { + new InfoOutBuilder() + .init(outputInfo) + .setClassName(classInfo.getClassName()) + .build(); + } + + private static ClassInfo buildClassInfo(TableInfo tableInfo, OutputInfo outputInfo) { + return new InfoClsBuilder() + .setTableName(tableInfo.getTableName()) + .setPackageName(outputInfo.getPackageName()) + .build(); + } + private void build(TableInfo tableInfo, List outputInfoList) { // 循环输出信息 for (OutputInfo outputInfo : outputInfoList) { @@ -136,55 +147,55 @@ public class SourceBuilder { private List defaultOutputInfoList() { return Arrays.asList( - // PO - new OutputBuilder().setNameSuffix(CfgUtils.getPoNameSuffix()) - .setTemplatePath(CfgUtils.getPoTemplatePath()) - .setPackagePath(CfgUtils.getPoPackagePath()) - .setPackageName(CfgUtils.getPoPackageName()) - .build(), - // MAPPER - new OutputBuilder().setNameSuffix(CfgUtils.getMapperNameSuffix()) - .setTemplatePath(CfgUtils.getMapperTemplatePath()) - .setPackagePath(CfgUtils.getMapperPackagePath()) - .setPackageName(CfgUtils.getMapperPackageName()) - .build(), - // SERVICE - new OutputBuilder().setNameSuffix(CfgUtils.getServiceNameSuffix()) - .setTemplatePath(CfgUtils.getServiceTemplatePath()) - .setPackagePath(CfgUtils.getServicePackagePath()) - .setPackageName(CfgUtils.getServicePackageName()) - .build(), - // SERVICE INTERFACE - new OutputBuilder().setNameSuffix(CfgUtils.getServiceNameSuffix()) - .setNamePrefix(CfgUtils.getServiceInterfacePrefix()) - .setTemplatePath(CfgUtils.getServiceInterfaceTemplatePath()) - .setPackagePath(CfgUtils.getServiceInterfacePackagePath()) - .setPackageName(CfgUtils.getServiceInterfacePackageName()) - .build(), - // CONTROLLER - new OutputBuilder().setNameSuffix(CfgUtils.getControllerNameSuffix()) - .setTemplatePath(CfgUtils.getControllerTemplatePath()) - .setPackagePath(CfgUtils.getControllerPackagePath()) - .setPackageName(CfgUtils.getControllerPackageName()) - .build(), - // VIEW - new OutputBuilder().setNameSuffix(CfgUtils.getViewNameSuffix()) - .setTemplatePath(CfgUtils.getViewTemplatePath()) - .setPackagePath(CfgUtils.getViewPackagePath()) - .setPackageName(CfgUtils.getViewPackageName()) - .build(), - // FORM - new OutputBuilder().setNameSuffix(CfgUtils.getFormNameSuffix()) - .setTemplatePath(CfgUtils.getFormTemplatePath()) - .setPackagePath(CfgUtils.getFormPackagePath()) - .setPackageName(CfgUtils.getFormPackageName()) - .build(), - // QUERY - new OutputBuilder().setNameSuffix(CfgUtils.getQueryNameSuffix()) - .setTemplatePath(CfgUtils.getQueryTemplatePath()) - .setPackagePath(CfgUtils.getQueryPackagePath()) - .setPackageName(CfgUtils.getQueryPackageName()) - .build() + // PO + new InfoOutBuilder().setNameSuffix(CfgUtils.getPoNameSuffix()) + .setTemplatePath(CfgUtils.getPoTemplatePath()) + .setPackagePath(CfgUtils.getPoPackagePath()) + .setPackageName(CfgUtils.getPoPackageName()) + .build(), + // MAPPER + new InfoOutBuilder().setNameSuffix(CfgUtils.getMapperNameSuffix()) + .setTemplatePath(CfgUtils.getMapperTemplatePath()) + .setPackagePath(CfgUtils.getMapperPackagePath()) + .setPackageName(CfgUtils.getMapperPackageName()) + .build(), + // SERVICE + new InfoOutBuilder().setNameSuffix(CfgUtils.getServiceNameSuffix()) + .setTemplatePath(CfgUtils.getServiceTemplatePath()) + .setPackagePath(CfgUtils.getServicePackagePath()) + .setPackageName(CfgUtils.getServicePackageName()) + .build(), + // SERVICE INTERFACE + new InfoOutBuilder().setNameSuffix(CfgUtils.getServiceNameSuffix()) + .setNamePrefix(CfgUtils.getServiceInterfacePrefix()) + .setTemplatePath(CfgUtils.getServiceInterfaceTemplatePath()) + .setPackagePath(CfgUtils.getServiceInterfacePackagePath()) + .setPackageName(CfgUtils.getServiceInterfacePackageName()) + .build(), + // CONTROLLER + new InfoOutBuilder().setNameSuffix(CfgUtils.getControllerNameSuffix()) + .setTemplatePath(CfgUtils.getControllerTemplatePath()) + .setPackagePath(CfgUtils.getControllerPackagePath()) + .setPackageName(CfgUtils.getControllerPackageName()) + .build(), + // VIEW + new InfoOutBuilder().setNameSuffix(CfgUtils.getViewNameSuffix()) + .setTemplatePath(CfgUtils.getViewTemplatePath()) + .setPackagePath(CfgUtils.getViewPackagePath()) + .setPackageName(CfgUtils.getViewPackageName()) + .build(), + // FORM + new InfoOutBuilder().setNameSuffix(CfgUtils.getFormNameSuffix()) + .setTemplatePath(CfgUtils.getFormTemplatePath()) + .setPackagePath(CfgUtils.getFormPackagePath()) + .setPackageName(CfgUtils.getFormPackageName()) + .build(), + // QUERY + new InfoOutBuilder().setNameSuffix(CfgUtils.getQueryNameSuffix()) + .setTemplatePath(CfgUtils.getQueryTemplatePath()) + .setPackagePath(CfgUtils.getQueryPackagePath()) + .setPackageName(CfgUtils.getQueryPackageName()) + .build() ); } diff --git a/src/main/java/space/caoshd/otone/builder/TableBuilder.java b/src/main/java/space/caoshd/otone/builder/TableBuilder.java index ac1cc5c..d651f58 100644 --- a/src/main/java/space/caoshd/otone/builder/TableBuilder.java +++ b/src/main/java/space/caoshd/otone/builder/TableBuilder.java @@ -11,7 +11,6 @@ import space.caoshd.otone.util.DBUtils; import space.caoshd.otone.util.JsonUtils; import space.caoshd.otone.util.PathConsts; import space.caoshd.otone.util.SqlConsts; -import space.caoshd.otone.util.StrUtils; import space.caoshd.otone.util.TypeUtils; import java.util.ArrayList; @@ -95,10 +94,6 @@ public class TableBuilder { String tableName = table.get(tableNameLabel); result.setTableName(tableName); - String tableNameWithoutPrefix = getTableNameWithoutPrefix(result.getTableName()); - String beanName = StrUtils.toCamelCase(tableNameWithoutPrefix, true); - result.setClassName(beanName); - List columnInfo = loadColumnInfo(tableSchema, tableName); result.setColumns(columnInfo); @@ -145,13 +140,4 @@ public class TableBuilder { .orElseThrow(() -> new RuntimeException("column: " + columnName + " not exists.")); } - private String getTableNameWithoutPrefix(String tableNameWithoutPrefix) { - List tablePrefixes = CONFIG.getStrings(CfgUtils.DATABASE_TABLE_PREFIXES); - - for (String tablePrefix : tablePrefixes) { - tableNameWithoutPrefix = StrUtils.removePrefix(tableNameWithoutPrefix, tablePrefix); - } - return tableNameWithoutPrefix; - } - } diff --git a/src/main/java/space/caoshd/otone/entity/ClassInfo.java b/src/main/java/space/caoshd/otone/entity/ClassInfo.java new file mode 100644 index 0000000..16bd5d2 --- /dev/null +++ b/src/main/java/space/caoshd/otone/entity/ClassInfo.java @@ -0,0 +1,104 @@ +package space.caoshd.otone.entity; + +public class ClassInfo { + + private String packageName; + + private String className; + + private String controllerSuffix; + + private String serviceSuffix; + + private String servieInterfacePrefix; + + private String mapperSuffix; + + private String poSuffix; + + private String viewSuffix; + + private String formSuffix; + + private String querySuffix; + + public String getPackageName() { + return packageName; + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public String getClassName() { + return className; + } + + public void setClassName(String className) { + this.className = className; + } + + public String getControllerSuffix() { + return controllerSuffix; + } + + public void setControllerSuffix(String controllerSuffix) { + this.controllerSuffix = controllerSuffix; + } + + public String getServiceSuffix() { + return serviceSuffix; + } + + public void setServiceSuffix(String serviceSuffix) { + this.serviceSuffix = serviceSuffix; + } + + public String getServieInterfacePrefix() { + return servieInterfacePrefix; + } + + public void setServieInterfacePrefix(String servieInterfacePrefix) { + this.servieInterfacePrefix = servieInterfacePrefix; + } + + public String getMapperSuffix() { + return mapperSuffix; + } + + public void setMapperSuffix(String mapperSuffix) { + this.mapperSuffix = mapperSuffix; + } + + public String getPoSuffix() { + return poSuffix; + } + + public void setPoSuffix(String poSuffix) { + this.poSuffix = poSuffix; + } + + public String getViewSuffix() { + return viewSuffix; + } + + public void setViewSuffix(String viewSuffix) { + this.viewSuffix = viewSuffix; + } + + public String getFormSuffix() { + return formSuffix; + } + + public void setFormSuffix(String formSuffix) { + this.formSuffix = formSuffix; + } + + public String getQuerySuffix() { + return querySuffix; + } + + public void setQuerySuffix(String querySuffix) { + this.querySuffix = querySuffix; + } +} diff --git a/src/main/java/space/caoshd/otone/entity/ContextInfo.java b/src/main/java/space/caoshd/otone/entity/ContextInfo.java new file mode 100644 index 0000000..ea3b4ad --- /dev/null +++ b/src/main/java/space/caoshd/otone/entity/ContextInfo.java @@ -0,0 +1,24 @@ +package space.caoshd.otone.entity; + +public class ContextInfo { + + private TableInfo tableInfo; + + private ClassInfo classInfo; + + public TableInfo getTableInfo() { + return tableInfo; + } + + public void setTableInfo(TableInfo tableInfo) { + this.tableInfo = tableInfo; + } + + public ClassInfo getConfigInfo() { + return classInfo; + } + + public void setConfigInfo(ClassInfo classInfo) { + this.classInfo = classInfo; + } +} diff --git a/src/main/java/space/caoshd/otone/entity/OutputInfo.java b/src/main/java/space/caoshd/otone/entity/OutputInfo.java index ee4f093..aa00fdf 100644 --- a/src/main/java/space/caoshd/otone/entity/OutputInfo.java +++ b/src/main/java/space/caoshd/otone/entity/OutputInfo.java @@ -12,6 +12,8 @@ public class OutputInfo { private String packagePath; + private String outputPath; + private String nameSuffix = ""; private String namePrefix = ""; @@ -63,4 +65,12 @@ public class OutputInfo { public void setNamePrefix(String namePrefix) { this.namePrefix = namePrefix; } + + public String getOutputPath() { + return outputPath; + } + + public void setOutputPath(String outputPath) { + this.outputPath = outputPath; + } } diff --git a/src/main/java/space/caoshd/otone/entity/TableInfo.java b/src/main/java/space/caoshd/otone/entity/TableInfo.java index e811c81..fe4572e 100644 --- a/src/main/java/space/caoshd/otone/entity/TableInfo.java +++ b/src/main/java/space/caoshd/otone/entity/TableInfo.java @@ -1,7 +1,6 @@ package space.caoshd.otone.entity; import java.util.ArrayList; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -11,15 +10,10 @@ public class TableInfo { private String comment; private String tableSchema; private String tableName; - private String packageName; - private String className; - private String classNameSuffix; - private String classNamePrefix; private Boolean dateExists; private Boolean decimalExists; private List columns = new ArrayList<>(); private Map> indexes = new LinkedHashMap<>(); - private Map extra = new HashMap<>(); public String getComment() { return comment; @@ -45,38 +39,6 @@ public class TableInfo { this.tableName = tableName; } - public String getPackageName() { - return packageName; - } - - public void setPackageName(String packageName) { - this.packageName = packageName; - } - - public String getClassName() { - return className; - } - - public void setClassName(String className) { - this.className = className; - } - - public String getClassNamePrefix() { - return classNamePrefix; - } - - public void setClassNamePrefix(String classNamePrefix) { - this.classNamePrefix = classNamePrefix; - } - - public String getClassNameSuffix() { - return classNameSuffix; - } - - public void setClassNameSuffix(String classNameSuffix) { - this.classNameSuffix = classNameSuffix; - } - public Boolean getDateExists() { return dateExists; } @@ -109,11 +71,4 @@ public class TableInfo { this.indexes = indexes; } - public Map getExtra() { - return extra; - } - - public void setExtra(Map extra) { - this.extra = extra; - } } diff --git a/src/main/java/space/caoshd/otone/util/VelocityUtils.java b/src/main/java/space/caoshd/otone/util/VelocityUtils.java index a3b80b1..b9361b6 100644 --- a/src/main/java/space/caoshd/otone/util/VelocityUtils.java +++ b/src/main/java/space/caoshd/otone/util/VelocityUtils.java @@ -6,6 +6,7 @@ import org.apache.velocity.app.Velocity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import space.caoshd.otone.builder.TableBuilder; +import space.caoshd.otone.entity.ContextInfo; import space.caoshd.otone.tool.PropTools; import java.io.FileWriter; @@ -17,24 +18,25 @@ public class VelocityUtils { private static final Logger LOGGER = LoggerFactory.getLogger(TableBuilder.class); - public static void render( - String beanName, Object bean, String templatePath, String outputPath - ) { + public static void render(String templatePath, String outputPath, ContextInfo ctx) { PropTools propTools = new PropTools(PathConsts.VELOCITY_PROPERTIES_PATH); Properties properties = propTools.getProperties(); Velocity.init(properties); VelocityContext context = new VelocityContext(); - context.put("context", bean); + + context.put("tbl", ctx.getTableInfo()); + context.put("cfg", ctx.getConfigInfo()); Template template = Velocity.getTemplate(templatePath, StandardCharsets.UTF_8.name()); try (FileWriter fw = new FileWriter(outputPath)) { LOGGER.info("generate file: {}", outputPath); - LOGGER.info("context info: {}", JsonUtils.toJson(bean)); + LOGGER.info("context info: {}", JsonUtils.toJson(ctx)); template.merge(context, fw); } catch (IOException e) { throw new RuntimeException(e); } } + } diff --git a/src/test/resources/config/config.properties b/src/test/resources/config/config.properties index cc5ddf2..51bd578 100644 --- a/src/test/resources/config/config.properties +++ b/src/test/resources/config/config.properties @@ -15,6 +15,7 @@ package.name.service.interface=service #module.name.controller=controller #module.name.repository=data #module.name.service=cmpt +#java.name.prefix.service=I #java.name.suffix.service=Service #java.name.suffix.controller=Controller #java.name.suffix.view=View