[ 
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

Reply via email to