ModelGenerator.java 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package com.izouma.codegenerator;
  2. import com.izouma.awesomeadmin.model.GenCode;
  3. import org.apache.log4j.Logger;
  4. import org.apache.velocity.Template;
  5. import org.apache.velocity.VelocityContext;
  6. import org.apache.velocity.app.Velocity;
  7. import org.apache.velocity.tools.ToolManager;
  8. import java.nio.file.Path;
  9. import java.nio.file.Paths;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. public class ModelGenerator {
  13. private static final Logger LOGGER = Logger.getLogger(ModelGenerator.class);
  14. public static void GenModel(GenCode model) {
  15. try {
  16. List<String> imports = new ArrayList<>(GeneratorTool.getImports(model));
  17. imports = GeneratorTool.removeDuplicated(imports);
  18. ToolManager manager = new ToolManager(true, true);
  19. VelocityContext context = new VelocityContext(manager.createContext());
  20. context.put("imports", imports);
  21. context.put("model", model);
  22. String templateName = "ModelTemplate.vm";
  23. Template t = Velocity.getTemplate(templateName);
  24. Path targetFile = Paths.get(model.getJavaPath(), "model", model.getClassName() + ".java").toAbsolutePath();
  25. GeneratorTool.merge(targetFile, context, t, model.getUpdate());
  26. LOGGER.info("成功生成Model:" + targetFile.toString());
  27. } catch (Exception e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. }