Generated value object's isIdentical method does not honor @ejb.valueobject 
composes-name attribute
---------------------------------------------------------------------------------------------------

         Key: XDT-1536
         URL: http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1536
     Project: XDoclet
        Type: Bug
  Components: EJB Module  
    Versions: 1.2.3    
 Environment: Windows XP, MyEclipse
 Reporter: Tim
 Assigned to: xdoclet-devel (Use for new issues) 


I have written an Entity bean called Order that has a 1-n compose relation to a 
collection of entity beans called Status.  The following is my method signature 
for Order bean's statusList setter/getter:

        /**
         * @ejb.interface-method view-type="local"
         * @ejb.relation
         *      name="Order-OrderStatusList"
         *      role-name="order-has-status-list"
         *      cascade-delete="yes"
         *
         * @ejb.value-object
         *      compose="mytest.valueobjects.StatusValue"
         *      compose-name="Status"
         *                   composes-name="StatusList"
         *      members="mytest.interfaces.Status"              
         *      members-name="DetectorStatus"
         *              
         *      relation="external"
         * 
         * @return Collection of all status entries for this order
         */
        public abstract Collection getStatusList();
        /**
         * @ejb.interface-method view-type="local"
         * @return
         */
        public abstract void setStatusList(Collection statusList);

I ran this through xdoclet with a class level @ejb.value-object tag.  The 
generated OrderValue class has the correctly named  getStatusList() method.  
However, the OrderValue.isIdentical() method is trying to call a non-existing 
getStatuss() method.  
Here is the generated getStatusList() method signature:

  public mytest.valueobjects.StatusValue[] getStatusList()
   {
        return (mytest.valueobjects.StatusValue[])this.StatusList.toArray(new 
mytest.valueobjects.StatusValue[StatusList.size()]);
   }


Here is the portion of generated code in the OrderValue.isIdentical() method:

                 if( this.getStatuss() == null )
                 {
                        lEquals = lEquals && ( that.getStatuss() == null );
                 }
                 else
                 {
                        lEquals = lEquals && 
java.util.Arrays.equals(this.getStatuss() , that.getStatuss()) ;
                 }

This of course will not compile.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://opensource.atlassian.com/projects/xdoclet/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. 
Download it for free - -and be entered to win a 42" plasma tv or your very
own Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
xdoclet-devel mailing list
xdoclet-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to