I'm trying to use inheritance for Struts forms using @struts:form tag.
I've got two entity beans: CatalogItem and Product. CatalogItem is a
base class which Product extends:

/**
 * @ejb:bean        type="CMP" ....
 *
 * @struts:form     name="Full" 
 *                  include-all="true"
 */
public abstract class CatalogItemEJB implements EntityBean {
    ...
}

/**
 * @ejb:bean        type="CMP" ....
 *
 * @struts:form     name="Full" 
 *                  include-all="true"
 *                  extends="test.CatalogItemFullForm"
 */
public abstract class ProductEJB extends CatalogItemEJB 
                                 implements EntityBean {
    ...
}


As result I get two Struts form implementations:

public class CatalogItemFullForm extends ActionForm
                                 implements Serializable {
   ...

   public CatalogItemData getData() {
       ...
   }
}

public class ProductFullForm extends CatalogItemFullForm
                             implements Serializable {
   ...

   public ProductData getData() {
       ...
   }
}


ProductFullForm doesn't compile since Java doesn't allow different
return type for overloaded methods. It would be very nice if
@sturts:form would notice this and use base class's method signature and
override the implementation:

public class ProductFullForm extends CatalogItemFullForm
                             implements Serializable {
   ...

   public CatalogItemData getData() {
       ...
   }
}


-- 
Joni
[EMAIL PROTECTED]
http://www.shiftcontrol.com


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

Reply via email to