1 package com.salto.db.generator.plugin; 2 3 import java.util.Date; 4 import java.util.HashMap; 5 import java.util.Map; 6 7 import org.apache.velocity.Template; 8 import org.apache.velocity.app.Velocity; 9 10 import com.salto.db.generator.Constants; 11 12 import salto.tool.jdo.data.JdoInfo; 13 import salto.tool.jdo.util.CreatorUtil; 14 15 public class SpringEJB3AndHibernateDAOPlugin extends VelocityAbstractPlugin { 16 17 protected EJB3Plugin ejb3Plugin = null; 18 19 public static final String TEMPLATE_PATH = "springhibernatedao"; 20 21 public void execute(String className, JdoInfo info) throws Exception { 22 23 ejb3Plugin.execute(className, info); 24 25 CreatorUtil.getDoNameCreator().setPrefix(doPrefix); 26 CreatorUtil.getDoNameCreator().setDefaultNameOffset(this.defaultNameOffset); 27 Map context = new HashMap(); 28 context.put("jdoInfo", info); 29 context.put("util", CreatorUtil.getInstance()); 30 context.put("templatePath", TEMPLATE_PATH); 31 context.put("generatorVersion", Constants.GENERATOR_NAME + " / " + this.getShortDescription()); 32 context.put("date", new Date()); 33 info.setJavaPckName(pckName); 34 info.setJavaClassName(className); 35 36 runVelocity(EJB3AndHibernateDAOPlugin.TEMPLATE_PATH, "hibernatedao.vm", srcPath + "/" + (pckName + ".hibernate").replace('.', '/') + "/", className + "HibernateDAO.java", context); 37 38 runVelocity(EJB3AndHibernateDAOPlugin.TEMPLATE_PATH, "dao.vm", srcPath + "/" + pckName.replace('.', '/') + "/", className + "DAO.java", context); 39 40 } 41 42 public String getDefaultPrefix() { 43 return ""; 44 } 45 46 public String getLongDescription() { 47 return "This plugin will generate Hibernate EJB3 POJOS, hibernate.cfg.xml and Spring DAOs for each class."; 48 } 49 50 public String getName() { 51 return "SpringEJB3AndHibernateDao"; 52 } 53 54 public String getShortDescription() { 55 return "EJB3 + Spring/Hibernate DAO"; 56 } 57 58 public void postExecute(JdoInfo[] infos) throws Exception { 59 60 CreatorUtil.getDoNameCreator().setPrefix(doPrefix); 61 CreatorUtil.getDoNameCreator().setDefaultNameOffset(this.defaultNameOffset); 62 Map context = new HashMap(); 63 context.put("jdoInfos", infos); 64 context.put("connInfo", infos[0].getConnInfo()); 65 context.put("util", CreatorUtil.getInstance()); 66 context.put("templatePath", TEMPLATE_PATH); 67 context.put("generatorVersion", Constants.GENERATOR_NAME + " / " + this.getShortDescription()); 68 context.put("date", new Date()); 69 context.put("dialect", this.ejb3Plugin); 70 context.put("pckName", pckName); 71 context.put("annotations", String.valueOf(ejb3Plugin.isGenerateAnnotations())); 72 context.put("hibernateDialectHelper", new HibernateDialectHelper()); 73 context.put("ejb3daotemplatePath", EJB3AndHibernateDAOPlugin.TEMPLATE_PATH); 74 75 runVelocity(TEMPLATE_PATH, "springabstracthibernatedao.vm", srcPath + "/" + (pckName + ".hibernate").replace('.', '/') + "/", "AbstractHibernateDAO.java", context); 76 77 runVelocity(EJB3AndHibernateDAOPlugin.TEMPLATE_PATH, "genericdao.vm", srcPath + "/" + pckName.replace('.', '/') + "/", "GenericDAO.java", context); 78 79 runVelocity(TEMPLATE_PATH, "applicationContext-resources.xml.vm", srcPath, "applicationContext-resources.xml", context); 80 runVelocity(TEMPLATE_PATH, "applicationContext-hibernate.xml.vm", srcPath, "applicationContext-hibernate.xml", context); 81 82 } 83 84 public void init(String doPrefix, int defaultNameOffset, String srcPath, String pckName) throws Exception { 85 super.init(doPrefix, defaultNameOffset, srcPath, pckName); 86 ejb3Plugin = new EJB3Plugin(); 87 ejb3Plugin.init(doPrefix, defaultNameOffset, srcPath, pckName + ".pojo"); 88 } 89 90 public EJB3Plugin getEjb3Plugin() { 91 return ejb3Plugin; 92 } 93 94 public void setEjb3Plugin(EJB3Plugin ejb3Plugin) { 95 this.ejb3Plugin = ejb3Plugin; 96 } 97 98 }