From: <leg...@at...> - 2003-09-02 12:06:27
|
Message: A new issue has been created in JIRA. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?= key=3DHB-304 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-304 Summary: Velocity renderer Type: Improvement Status: Unassigned Priority: Minor Project: Hibernate2 Components:=20 toolset Assignee:=20 Reporter: Didier Girard Created: Tue, 2 Sep 2003 7:06 AM Updated: Tue, 2 Sep 2003 7:06 AM Description: Here is the code of my basic Velocity renderer : import java.io.PrintWriter; import java.io.StringWriter; import java.util.Iterator; import java.util.Map; import java.util.Properties; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import net.sf.hibernate.tool.hbm2java.AbstractRenderer; import net.sf.hibernate.tool.hbm2java.ClassMapping; import net.sf.hibernate.tool.hbm2java.Field; abstract public class AbstractHBM2JavaVelocityRenderer extends AbstractRend= erer { public void render(String savedToPackage, String savedToClass, ClassMap= ping classMapping, Map class2classmap, PrintWriter mainwriter) throws Excep= tion { StringWriter strWriter =3D null; String template =3D getTemplate(); strWriter =3D mergeTemplate(template, savedToPackage, savedToClass,= classMapping, class2classmap); mainwriter.print(strWriter.toString()); } private Field findIdentifier(ClassMapping classMapping) { Field result =3D null; for (Iterator fields =3D classMapping.getFields().iterator(); field= s.hasNext();) { Field field =3D (Field) fields.next(); if (field.isGeneratedAsProperty() && field.isIdentifier() && (r= esult =3D=3D null)) { result =3D field; } } return result; } public StringWriter mergeTemplate(String template, String savedToPackag= e, String savedToClass, ClassMapping classMapping, Map class2classmap) thro= ws Exception { Properties p =3D new Properties(); p.setProperty("resource.loader", "class"); p.setProperty("class.resource.loader.description", "Velocity Classp= ath Resource Loader"); p.setProperty("class.resource.loader.class", "org.apache.velocity.r= untime.resource.loader.ClasspathResourceLoader"); Velocity.init(p); VelocityContext context =3D new VelocityContext(); context.put("savedToPackage", savedToPackage); context.put("savedToClass", savedToClass); context.put("classMapping", classMapping); context.put("class2classmap", class2classmap); Field idEntity =3D findIdentifier(classMapping); context.put("idEntity", idEntity); StringWriter strWriter =3D new StringWriter(); Velocity.mergeTemplate(template, "ISO-8859-1", context, strWriter); return strWriter; } =20 public abstract String getTemplate(); } Here is a example of template : package ${classMapping.getGeneratedPackageName()}; #set($entity =3D "${classMapping.Name}" ) #set($entityLowerCase =3D "${classMapping.Name.toLowerCase()}" ) /** API du service Entreprise g=C3=A9n=C3=A9r=C3=A9 pour l'entit=C3=A9 $sav= edToClass. * @author hibernateGenerator **/ public interface $savedToClass extends Service { =09public $entity find${entity}(${idEntity.ClassType.getFullyQualifiedName(= )} in_${entityLowerCase}Id) throws ServiceException; =09public void delete${entity}(${entity} in_${entityLowerCase}) throws Serv= iceException; =09public $entity add${entity}(${entity} in_${entityLowerCase}) throws Serv= iceException; =09public $entity update${entity}(${entity} in_${entityLowerCase}) throws S= erviceException; } =09 --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators= .jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |