| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package jnpf.base.util.custom;
- import com.baomidou.mybatisplus.core.toolkit.Constants;
- import com.baomidou.mybatisplus.generator.config.ConstVal;
- import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
- import com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine;
- import org.apache.velocity.Template;
- import org.apache.velocity.VelocityContext;
- import org.apache.velocity.app.VelocityEngine;
- import org.jetbrains.annotations.NotNull;
- import java.io.*;
- import java.util.Map;
- import java.util.Properties;
- public class CustomTemplateEngine extends AbstractTemplateEngine {
- private static final String DOT_VM = ".vm";
- private VelocityEngine velocityEngine;
- private Map<String, Object> customParams;
- private String path;
- public CustomTemplateEngine(String path) {
- this.path = path;
- }
- public CustomTemplateEngine(Map<String, Object> customParams, String path) {
- this.customParams = customParams;
- this.path = path;
- }
- @Override
- public CustomTemplateEngine init(ConfigBuilder configBuilder) {
- super.setConfigBuilder(configBuilder);
- if (null == this.velocityEngine) {
- Properties p = new Properties();
- p.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, path);
- p.setProperty("ISO-8859-1", Constants.UTF_8);
- p.setProperty("output.encoding", Constants.UTF_8);
- this.velocityEngine = new VelocityEngine(p);
- }
- return this;
- }
- @Override
- public String writer(@NotNull Map<String, Object> objectMap, @NotNull String templateName, @NotNull String templateString) throws Exception {
- StringWriter writer = new StringWriter();
- this.velocityEngine.evaluate(new VelocityContext(objectMap), writer, templateName, templateString);
- return writer.toString();
- }
- @Override
- public void writer(Map<String, Object> objectMap, String templatePath, File outputFile) throws Exception {
- if (templatePath != null && !"".equals(templatePath.trim())) {
- Template template = this.velocityEngine.getTemplate(templatePath, ConstVal.UTF8);
- FileOutputStream fos = new FileOutputStream(outputFile);
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fos, ConstVal.UTF8));
- if (customParams != null) {
- objectMap.putAll(customParams);
- }
- template.merge(new VelocityContext(objectMap), writer);
- writer.close();
- }
- }
- @Override
- public String templateFilePath(String filePath) {
- if (null != filePath && !filePath.contains(".vm")) {
- StringBuilder fp = new StringBuilder();
- fp.append(filePath).append(".vm");
- return fp.toString();
- } else {
- return filePath;
- }
- }
- }
|