package com.izouma.codegenerator; import com.izouma.awesomeadmin.model.GenCode; import org.apache.log4j.Logger; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import org.apache.velocity.tools.ToolManager; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; public class ModelGenerator { private static final Logger LOGGER = Logger.getLogger(ModelGenerator.class); public static void GenModel(GenCode model) { try { List imports = new ArrayList<>(GeneratorTool.getImports(model)); imports = GeneratorTool.removeDuplicated(imports); ToolManager manager = new ToolManager(true, true); VelocityContext context = new VelocityContext(manager.createContext()); context.put("imports", imports); context.put("model", model); String templateName = "ModelTemplate.vm"; Template t = Velocity.getTemplate(templateName); Path targetFile = Paths.get(model.getJavaPath(), "model", model.getClassName() + ".java").toAbsolutePath(); GeneratorTool.merge(targetFile, context, t, model.getUpdate()); LOGGER.info("成功生成Model:" + targetFile.toString()); } catch (Exception e) { e.printStackTrace(); } } }