[ http://team.andromda.org:8080/jira/browse/SPRING-28?page=comments#action_10831 ] Bruno SuÃrez Laffargue commented on SPRING-28: ----------------------------------------------
As i can not attach the patch itself, I paste it. Index: cartridges/andromda-hibernate/src/templates/hibernate/HibernateEntity.vsl =================================================================== RCS file: /cvsroot/andromda/cartridges/andromda-hibernate/src/templates/hibernate/HibernateEntity.vsl,v retrieving revision 1.40 diff -u -r1.40 HibernateEntity.vsl --- cartridges/andromda-hibernate/src/templates/hibernate/HibernateEntity.vsl 26 Jan 2005 17:54:11 -0000 1.40 +++ cartridges/andromda-hibernate/src/templates/hibernate/HibernateEntity.vsl 10 Feb 2005 15:26:53 -0000 @@ -30,6 +30,24 @@ } #end #foreach ( $attribute in $entity.attributes ) +#if ($attribute.type.hasStereotype("Enumeration")) +#set ($typeName = "${attribute.type.fullyQualifiedName}Persistent") + + private $typeName ${attribute.name}Persistent; + + /** +$attribute.getDocumentation(" * ") + */ + $attribute.visibility $typeName ${attribute.getterName}Persistent() + { + return this.${attribute.name}Persistent; + } + + $attribute.visibility void ${attribute.setterName}Persistent(${typeName} ${attribute.name}Persistent) + { + this.${attribute.name}Persistent = ${attribute.name}Persistent; + } +#else #set ($typeName = $attribute.type.fullyQualifiedName) private $typeName $attribute.name; @@ -45,6 +63,7 @@ { this.${attribute.name} = $attribute.name; } +#end #end ## Generate the relation methods. Index: cartridges/andromda-hibernate/src/templates/hibernate/HibernateEnumeration.vsl =================================================================== RCS file: /cvsroot/andromda/cartridges/andromda-hibernate/src/templates/hibernate/HibernateEnumeration.vsl,v retrieving revision 1.13 diff -u -r1.13 HibernateEnumeration.vsl --- cartridges/andromda-hibernate/src/templates/hibernate/HibernateEnumeration.vsl 10 Feb 2005 13:49:27 -0000 1.13 +++ cartridges/andromda-hibernate/src/templates/hibernate/HibernateEnumeration.vsl 10 Feb 2005 15:29:28 -0000 @@ -2,7 +2,7 @@ // Attention: Generated code! Do not modify by hand! // Generated by: HibernateEnumeration.vsl in andromda-spring-cartridge. // -#set ($generatedFile = "${stringUtils.replace($enumeration.packageName, '.', '/')}/${enumeration.name}.java") +#set ($generatedFile = "${stringUtils.replace($enumeration.packageName, '.', '/')}/${enumeration.name}Persistent.java") package $enumeration.packageName; import net.sf.hibernate.HibernateException; @@ -21,7 +21,8 @@ /** $enumeration.getDocumentation(" * ") */ -public final class $enumeration.name +public final class ${enumeration.name}Persistent + extends $enumeration.name implements Serializable, Comparable, UserType { @@ -31,24 +32,15 @@ private static final Map INSTANCES = new HashMap(); private static final List LITERALS = new ArrayList(); -#foreach ($literal in $enumeration.literals) - /** -$literal.getDocumentation(" * ") - */ - public final static $enumeration.name $literal.name = new ${enumeration.name}($literal.enumerationValue); - -#end - static { #foreach ($literal in $enumeration.literals) - INSTANCES.put(${literal.name}.enumCode, ${literal.name}); + INSTANCES.put(${literal.name}.value, ${literal.name}); #end LITERALS.addAll(INSTANCES.values()); } private static final int[] SQL_TYPES = {Types.VARCHAR}; - private String enumCode = null; /** * Default constructor. Hibernate needs the default constructor @@ -56,14 +48,14 @@ * The instance will be converted to the correct enum instance * in [EMAIL PROTECTED] #nullSafeGet(java.sql.ResultSet, java.lang.String[], java.lang.Object)}. */ - public ${enumeration.name}() + public ${enumeration.name}Persistent() { // 0x90 } - public ${enumeration.name}(String enumCode) + public ${enumeration.name}Persistent(String enumCode) { - this.enumCode=enumCode; + super(enumCode); } /** @@ -113,7 +105,7 @@ */ public Class returnedClass() { - return ${enumeration.name}.class; + return ${enumeration.name}Persistent.class; } public static ${enumeration.name} fromString(String enumCode) @@ -123,7 +115,7 @@ public String toString() { - return this.enumCode; + return super.toString(); } /** Index: cartridges/andromda-hibernate/src/templates/hibernate/ejb/HibernateEntityFactory.vsl =================================================================== RCS file: /cvsroot/andromda/cartridges/andromda-hibernate/src/templates/hibernate/ejb/HibernateEntityFactory.vsl,v retrieving revision 1.2 diff -u -r1.2 HibernateEntityFactory.vsl --- cartridges/andromda-hibernate/src/templates/hibernate/ejb/HibernateEntityFactory.vsl 1 Feb 2005 03:47:41 -0000 1.2 +++ cartridges/andromda-hibernate/src/templates/hibernate/ejb/HibernateEntityFactory.vsl 10 Feb 2005 15:27:33 -0000 @@ -35,9 +35,13 @@ #foreach ($attribute in $attributes) #if (!$attribute.identifier) +#if ($attribute.type.hasStereotype("Enumeration")) + object.${attribute.setterName}Persistent ((${attribute.type.fullyQualifiedName}Persistent) $attribute.name); +#else object.${attribute.setterName} ($attribute.name); #end #end +#end return object; } Index: cartridges/andromda-java/src/templates/java/Enumeration.vsl =================================================================== RCS file: /cvsroot/andromda/cartridges/andromda-java/src/templates/java/Enumeration.vsl,v retrieving revision 1.13 diff -u -r1.13 Enumeration.vsl --- cartridges/andromda-java/src/templates/java/Enumeration.vsl 14 Jan 2005 01:56:30 -0000 1.13 +++ cartridges/andromda-java/src/templates/java/Enumeration.vsl 9 Feb 2005 20:10:05 -0000 @@ -26,13 +26,22 @@ public static final $enumeration.name $literal.name = new ${enumeration.name}($literal.enumerationValue); #end - private $literalType.fullyQualifiedName value; + protected $literalType.fullyQualifiedName value; #set ($valueTypeDef = "${literalType.fullyQualifiedName} valueType = value;") #if($literalType.primitive) #set ($valueTypeDef = "${literalType.wrapperName} valueType = new ${literalType.wrapperName}(value);") #end - private ${enumeration.name}($literalType.fullyQualifiedName value) + + /** + * Default constructor. + */ + public ${enumeration.name}() + { + // 0x90 + } + + protected ${enumeration.name}($literalType.fullyQualifiedName value) { $valueTypeDef if (!values.contains(valueType)) > The hibernate enumeration should extend the java cartridge enums > ---------------------------------------------------------------- > > Key: SPRING-28 > URL: http://team.andromda.org:8080/jira/browse/SPRING-28 > Project: Spring Cartridge > Type: Improvement > Reporter: Chad Brandon > Assignee: Chad Brandon > > > Because of the fact most people will want to use normal java enums in > parallel with persistent hibernate enums, the hibernate enumerations should > extend the java enumerations. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://team.andromda.org:8080/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id396&op=click _______________________________________________ Andromda-devel mailing list Andromda-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/andromda-devel