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
|