Author: max...@jb... Date: 2006-04-20 13:43:46 -0400 (Thu, 20 Apr 2006) New Revision: 9772 Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/ComponentPOJOClass.java trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/POJOClass.java trunk/HibernateExt/tools/src/templates/pojo/Ejb3PropertyGetAnnotation.ftl trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Bungalow.hbm.xml trunk/HibernateExt/tools/src/test5.0/org/hibernate/tool/hbm2x/Hbm2JavaEjb3ForJDK50Test.java Log: HBX-648 ejb3 generation should generate the now required @Temporal for date/time's Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java =================================================================== --- trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java 2006-04-19 23:12:27 UTC (rev 9771) +++ trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/BasicPOJOClass.java 2006-04-20 17:43:46 UTC (rev 9772) @@ -15,6 +15,7 @@ import org.hibernate.mapping.Property; import org.hibernate.mapping.PropertyGeneration; import org.hibernate.mapping.Selectable; +import org.hibernate.mapping.SimpleValue; import org.hibernate.mapping.Value; import org.hibernate.tool.hbm2x.Cfg2JavaTool; import org.hibernate.tool.hbm2x.MetaAttributeConstants; @@ -22,7 +23,7 @@ import org.hibernate.util.StringHelper; /** - * Abstarct implementation of POJOClass. To be extended by ComponentPOJO and EntityPOJO + * Abstract implementation of POJOClass. To be extended by ComponentPOJO and EntityPOJO * @author max * @author <a href="mailto:abh...@jb...">Amit Bhayani</a> * @@ -293,6 +294,29 @@ return importContext.staticImport(fqcn, member); } + public String generateBasicAnnotation(Property property) { + StringBuffer annotations = new StringBuffer( " " ); + if(property.getValue() instanceof SimpleValue) { + String typeName = ((SimpleValue)property.getValue()).getTypeName(); + if("date".equals(typeName) || "java.sql.Date".equals(typeName)) { + buildTemporalAnnotation( annotations, "DATE" ); + } else if ("timestamp".equals(typeName) || "java.sql.Timestamp".equals(typeName)) { + //buildTemporalAnnotation( annotations, "TIMESTAMP" ); ..the default so don't generate + } else if ("time".equals(typeName) || "java.sql.Time".equals(typeName)) { + buildTemporalAnnotation(annotations, "TIME"); + } //TODO: calendar etc. ? + } + + return annotations.toString(); + } + + private StringBuffer buildTemporalAnnotation(StringBuffer annotations, String temporalTypeValue) { + String temporal = importType("javax.persistence.Temporal"); + String temporalType = importType("javax.persistence.TemporalType"); + + return annotations.append( "@" + temporal +"(" + temporalType + "." + temporalTypeValue + ")"); + } + public String generateAnnColumnAnnotation(Property property) { StringBuffer annotations = new StringBuffer( " " ); boolean insertable = property.isInsertable(); @@ -308,7 +332,7 @@ else { if ( property.getColumnSpan() == 1 ) { Selectable selectable = (Selectable) property.getColumnIterator().next(); - buildColumnAnnotation( selectable, annotations, insertable, updatable ); + buildColumnAnnotation( selectable, annotations, insertable, updatable ); } else { Iterator columns = property.getColumnIterator(); Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/ComponentPOJOClass.java =================================================================== --- trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/ComponentPOJOClass.java 2006-04-19 23:12:27 UTC (rev 9771) +++ trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/ComponentPOJOClass.java 2006-04-20 17:43:46 UTC (rev 9772) @@ -87,6 +87,10 @@ return false; } + public String generateBasicAnnotation(Property property) { + return null; + } + public String generateAnnIdGenerator() { return null; } Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/POJOClass.java =================================================================== --- trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/POJOClass.java 2006-04-19 23:12:27 UTC (rev 9771) +++ trunk/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/POJOClass.java 2006-04-20 17:43:46 UTC (rev 9772) @@ -69,6 +69,7 @@ public String generateAnnColumnAnnotation(Property property); public String generateAnnIdGenerator(); public String generateAnnTableUniqueConstraint(); + public String generateBasicAnnotation(Property property); public Iterator getAllPropertiesIterator(); public String getPackageName(); Modified: trunk/HibernateExt/tools/src/templates/pojo/Ejb3PropertyGetAnnotation.ftl =================================================================== --- trunk/HibernateExt/tools/src/templates/pojo/Ejb3PropertyGetAnnotation.ftl 2006-04-19 23:12:27 UTC (rev 9771) +++ trunk/HibernateExt/tools/src/templates/pojo/Ejb3PropertyGetAnnotation.ftl 2006-04-20 17:43:46 UTC (rev 9772) @@ -16,6 +16,7 @@ <#elseif c2h.isCollection(property)> ${pojo.generateCollectionAnnotation(property, cfg)} <#else> +${pojo.generateBasicAnnotation(property)} ${pojo.generateAnnColumnAnnotation(property)} </#if> </#if> \ No newline at end of file Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Bungalow.hbm.xml =================================================================== --- trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Bungalow.hbm.xml 2006-04-19 23:12:27 UTC (rev 9771) +++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/Bungalow.hbm.xml 2006-04-20 17:43:46 UTC (rev 9772) @@ -13,6 +13,11 @@ </id> <property name="name" type="string" not-null="true" length="100"/> + + <!-- test for various dates --> + <property name="lastModified" type="timestamp"/> + <property name="dayFree" type="date"/> + <property name="timeFree" type="time"/> </class> </hibernate-mapping> Modified: trunk/HibernateExt/tools/src/test5.0/org/hibernate/tool/hbm2x/Hbm2JavaEjb3ForJDK50Test.java =================================================================== --- trunk/HibernateExt/tools/src/test5.0/org/hibernate/tool/hbm2x/Hbm2JavaEjb3ForJDK50Test.java 2006-04-19 23:12:27 UTC (rev 9771) +++ trunk/HibernateExt/tools/src/test5.0/org/hibernate/tool/hbm2x/Hbm2JavaEjb3ForJDK50Test.java 2006-04-20 17:43:46 UTC (rev 9772) @@ -37,6 +37,10 @@ exporter.start(); } + protected void tearDown() throws Exception { + //super.tearDown(); + } + public void testFileExistence() { assertFileAndExists( new File( getOutputDir().getAbsolutePath() + "/org/hibernate/tool/hbm2x/Train.java" ) ); assertFileAndExists( |