User: pazu    
  Date: 02/05/29 10:12:20

  Modified:    modules/ejb/src/xdoclet/modules/ejb/entity/resources
                        entity-value.xdt
  Log:
  Adds a check for null aggregate on setVO() methods. Now it's possible to have
  optional (ie, nullable) aggregates. This wasn't possible before.
  
  For aggregates, if the aggregate value is null the corresponding CMR field is
  set to null. For composes, the corresponding CMR field is untouched.
  
  NOTE: This behavior is right for aggregates, but I'm not sure about composes.
  Maybe this needs a little more testing. Anyway, this shouldn't break anything.
  
  Revision  Changes    Path
  1.3       +10 -2     
xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/resources/entity-value.xdt
  
  Index: entity-value.xdt
  ===================================================================
  RCS file: 
/cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/resources/entity-value.xdt,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -w -r1.2 -r1.3
  --- entity-value.xdt  28 May 2002 21:30:17 -0000      1.2
  +++ entity-value.xdt  29 May 2002 17:12:19 -0000      1.3
  @@ -165,8 +165,10 @@
          <XDtEjbValueObj:forAllAggregates superclasses="true" 
valueobject="<XDtEjbValueObj:valueObjectMatch/>">
          {
           <XDtMethod:ifDoesntHaveMethodTag tagName="ejb:value-object" 
paramName="type">
  -
           <XDtClass:pushClass value="<XDtEjbValueObj:currentRelationBeanClass/>">
  +       // Checks for null aggregate
  +       if (valueHolder.get<XDtEjbValueObj:currentAggregateName/>() != null)
  +       {
                <XDtEjbPk:ifHasPrimkeyField>
                 <XDtEjbPk:pkClass/> pk = 
valueHolder.get<XDtEjbValueObj:currentAggregateName/>().<XDtEjbPk:primkeyGetter/>();
                </XDtEjbPk:ifHasPrimkeyField>
  @@ -180,6 +182,9 @@
   
                 <XDtMethod:methodType/> relation = home.findByPrimaryKey(pk);
                 <XDtMethod:setterMethod/>(relation);
  +        } else {
  +         <XDtMethod:setterMethod/>(null);
  +        }
                </XDtMethod:ifDoesntHaveMethodTag>
                <XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type">
   <XDtComment:comment>
  @@ -206,8 +211,10 @@
          // Anonymous block to allow variable declations without conflicts
          {
           <XDtMethod:ifDoesntHaveMethodTag tagName="ejb:value-object" 
paramName="type">
  -
                <XDtClass:pushClass value="<XDtEjbValueObj:currentRelationBeanClass/>">
  +        // Checks for null aggregate
  +        if (valueHolder.get<XDtEjbValueObj:currentAggregateName/>() != null)
  +        {
                 <XDtEjbPk:ifHasPrimkeyField>
                 <XDtEjbPk:pkClass/> pk = 
valueHolder.get<XDtEjbValueObj:currentAggregateName/>().<XDtEjbPk:primkeyGetter/>();
                 </XDtEjbPk:ifHasPrimkeyField>
  @@ -221,6 +228,7 @@
   
                 <XDtMethod:methodType/> relation = home.findByPrimaryKey(pk);
                 
relation.set<XDtEjbValueObj:currentAggregateName/>(valueHolder.get<XDtEjbValueObj:currentAggregateName/>());
  +        }
                </XDtMethod:ifDoesntHaveMethodTag>
                <XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type">
   <XDtComment:comment>
  
  
  

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm

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

Reply via email to