User: vharcq  
  Date: 02/06/18 14:10:16

  Modified:    modules/ejb/src/xdoclet/modules/ejb/entity
                        PersistentTagsHandler.java PkTagsHandler.java
  Log:
  Linked to Bug 547633 : Inheritence of ejb:pk-field and wrong data object generation. 
 No cmplete solution exist, at least we solve the need of havinf to repeat the getId() 
in subclasses when all entity beans inherit from a base class witha "GUID" in it.
  
  Revision  Changes    Path
  1.6       +62 -66    
xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/PersistentTagsHandler.java
  
  Index: PersistentTagsHandler.java
  ===================================================================
  RCS file: 
/cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/PersistentTagsHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -w -r1.5 -r1.6
  --- PersistentTagsHandler.java        13 Jun 2002 00:05:22 -0000      1.5
  +++ PersistentTagsHandler.java        18 Jun 2002 21:10:15 -0000      1.6
  @@ -27,7 +27,7 @@
    * @author               Ara Abrahamian ([EMAIL PROTECTED])
    * @created              Oct 16, 2001
    * @xdoclet.taghandler   namespace="EjbPersistent"
  - * @version              $Revision: 1.5 $
  + * @version              $Revision: 1.6 $
    */
   public class PersistentTagsHandler extends CmpTagsHandler
   {
  @@ -155,19 +155,26 @@
        *      getter comma sperated list)
        * @param clazz                 Description of Parameter
        * @param valueObject
  +     * @param superclasses
        * @return                      Description of the Returned Value
        * @exception XDocletException
        * @todo                        This method only takes the field of the current 
class. I think it's ok. Any
        *      objection ?
        */
  -    public static String fieldList(XClass clazz, String inclTag, String exclTag, 
int type, String valueObject) throws XDocletException
  +    public static String fieldList(XClass clazz, String inclTag, String exclTag, 
int type, String valueObject, boolean superclasses) throws XDocletException
       {
  +        Log log = LogUtil.getLog(PersistentTagsHandler.class, "fieldList");
  +
  +        log.debug("fieldList(" + clazz.getName() + ",incl tag=" + inclTag + ",excl 
tag=" + exclTag + ",type=" + type);
  +
           Map foundFields = new HashMap();
           StringBuffer st = new StringBuffer();
           String methodType = null;
           String name = null;
   
  -        //do {
  +        do {
  +            log.debug(" --> " + clazz);
  +
           XMethod[] methods = clazz.getMethods();
   
           for (int j = 0; j < methods.length; j++) {
  @@ -194,13 +201,14 @@
                           st.append(methodType).append(methodDimension).append(' 
').append(name);
                           break;
                       case 1:
  -                        String value = 
MethodTagsHandler.getPropertyNameFor(methods[j]);
  +                            //String value = 
MethodTagsHandler.getPropertyNameFor(methods[j]);
   
                           if (foundFields.size() > 1) {
                               st.append(" + " + "\" \"" + " + ");
                           }
   
  -                        st.append("\"").append(name).append("=\" + ").append(value);
  +                            //st.append("\"").append(name).append("=\" + 
").append(value);
  +                            st.append("\"").append(name).append("=\" + 
").append(methods[j].getName()).append("()");
                           break;
                       case 2:
                           if (foundFields.size() > 1) {
  @@ -214,8 +222,8 @@
           }
   
           // Add super class info
  -        //clazz = clazz.superclass();
  -        //} while (clazz != null);
  +            clazz = clazz.getSuperclass();
  +        } while (clazz != null && superclasses);
   
           return st.toString();
       }
  @@ -305,24 +313,6 @@
           }
       }
   
  -
  -    /**
  -     * Returns a string containing comma-separated list of persistent fields with 
their types.
  -     *
  -     * @param attributes
  -     * @return                      A string containing comma-separated list of 
persistent fields without their types.
  -     * @exception XDocletException
  -     * @see                         
#fieldList(xjavadoc.XClass,java.lang.String,java.lang.String,int,java.lang.String)
  -     * @doc:tag                     type="content"
  -     */
  -    public String persistentfieldList(Properties attributes) throws XDocletException
  -    {
  -        String valueObject = attributes.getProperty("valueobject");
  -
  -        return fieldList(getCurrentClass(), null, null, 0, valueObject);
  -    }
  -
  -
       /**
        * Returns a string containing comma-separated list of persistent fields 
without their types in fieldname="value"
        * format.
  @@ -338,21 +328,27 @@
       {
           String valueObject = attributes.getProperty("valueobject");
   
  -        return fieldList(getCurrentClass(), null, null, 1, valueObject);
  +        return fieldList(getCurrentClass(), null, null, 1, valueObject, false);
       }
   
   
       /**
        * Returns a string containing comma-separated list of persistent fields with 
their types.
        *
  +     * @param attributes
        * @return                      A string containing comma-separated list of 
persistent fields without their types.
        * @exception XDocletException
        * @see                         
#fieldList(xjavadoc.XClass,java.lang.String,java.lang.String,int,java.lang.String)
        * @doc:tag                     type="content"
        */
  -    public String persistentfieldList() throws XDocletException
  +    public String persistentfieldList(Properties attributes) throws XDocletException
       {
  -        return fieldList(getCurrentClass(), null, null, 0, null);
  +        String superclasses_str = attributes.getProperty("superclasses");
  +        boolean superclasses = TypeConversionUtil.stringToBoolean(superclasses_str, 
true);
  +
  +        String valueObject = attributes.getProperty("valueobject");
  +
  +        return fieldList(getCurrentClass(), null, null, 0, valueObject, 
superclasses);
       }
   
   
  @@ -368,7 +364,7 @@
        */
       public String persistentfieldNameValueList() throws XDocletException
       {
  -        return fieldList(getCurrentClass(), null, null, 1, null);
  +        return fieldList(getCurrentClass(), null, null, 1, null, true);
       }
   
   
  
  
  
  1.7       +3 -3      
xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/PkTagsHandler.java
  
  Index: PkTagsHandler.java
  ===================================================================
  RCS file: 
/cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/PkTagsHandler.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -w -r1.6 -r1.7
  --- PkTagsHandler.java        12 Jun 2002 23:34:25 -0000      1.6
  +++ PkTagsHandler.java        18 Jun 2002 21:10:15 -0000      1.7
  @@ -29,7 +29,7 @@
    * @author               Ara Abrahamian ([EMAIL PROTECTED])
    * @created              13. juni 2002
    * @xdoclet:taghandler   namespace="EjbPk"
  - * @version              $Revision: 1.6 $
  + * @version              $Revision: 1.7 $
    */
   public class PkTagsHandler extends EjbTagsHandler
   {
  @@ -431,7 +431,7 @@
        */
       public String pkfieldList() throws XDocletException
       {
  -        return PersistentTagsHandler.fieldList(getCurrentClass(), "ejb:pk-field", 
null, 0, null);
  +        return PersistentTagsHandler.fieldList(getCurrentClass(), "ejb:pk-field", 
null, 0, null, true);
       }
   
   
  @@ -448,7 +448,7 @@
       public String pkfieldListFrom(Properties attributes) throws XDocletException
       {
           String name = attributes.getProperty("name");
  -        String commaSep = PersistentTagsHandler.fieldList(getCurrentClass(), 
"ejb:pk-field", null, 2, null);
  +        String commaSep = PersistentTagsHandler.fieldList(getCurrentClass(), 
"ejb:pk-field", null, 2, null, true);
   
           StringTokenizer st = new StringTokenizer(commaSep, ",");
           String ret = "";
  
  
  

----------------------------------------------------------------------------
                   Bringing you mounds of caffeinated joy
                   >>>     http://thinkgeek.com/sf    <<<

_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to