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