Update of /cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/resources
In directory sc8-pr-cvs1:/tmp/cvs-serv8051
Modified Files:
entity-value.xdt
Log Message:
Change generated CMR addSthValue() to return PK of added entity. This is not relevant
under aggregation
(the PK for an existing entity is passed into the add with the VO), but is essential
in some circumstances
when using composition, because there is really no robust way to determine the PK of
the actual record that
was added.
Index: entity-value.xdt
===================================================================
RCS file:
/cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/resources/entity-value.xdt,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** entity-value.xdt 18 Sep 2002 19:49:16 -0000 1.7
--- entity-value.xdt 2 Dec 2002 09:59:44 -0000 1.8
***************
*** 8,12 ****
<XDtEjbValueObj:forAllRelations superclasses="true"
valueobject="<XDtEjbValueObj:valueObjectMatch/>">
<XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type">
! public void add<XDtMethod:methodTagValue tagName="ejb:value-object"
paramName="members-name"/>(<XDtEjbValueObj:currentAggregateType/> added)
<XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="compose">
throws javax.ejb.CreateException
--- 8,12 ----
<XDtEjbValueObj:forAllRelations superclasses="true"
valueobject="<XDtEjbValueObj:valueObjectMatch/>">
<XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type">
! public <XDtClass:pushClass
value="<XDtEjbValueObj:currentRelationBeanClass/>"><XDtEjbPk:pkClass/></XDtClass:pushClass>
add<XDtMethod:methodTagValue tagName="ejb:value-object"
paramName="members-name"/>(<XDtEjbValueObj:currentAggregateType/> added)
<XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="compose">
throws javax.ejb.CreateException
***************
*** 16,40 ****
</XDtMethod:ifHasMethodTag>
{
try
{
<XDtClass:pushClass value="<XDtEjbValueObj:currentRelationBeanClass/>">
<XDtEjbPk:ifHasPrimkeyField>
! <XDtEjbPk:pkClass/> pk = added.<XDtEjbPk:primkeyGetter/>();
</XDtEjbPk:ifHasPrimkeyField>
<XDtEjbPk:ifDoesntHavePrimkeyField>
! <XDtEjbPk:pkClass/> pk = new
<XDtEjbPk:pkClass/>(<XDtEjbPk:pkfieldListFrom name="added"/>);
</XDtEjbPk:ifDoesntHavePrimkeyField>
</XDtClass:pushClass>
!
<XDtMerge:merge
file="xdoclet/modules/ejb/entity/resources/entity-value-home.xdt">
</XDtMerge:merge>
-
<XDtMethod:ifHasMethodTag tagName="ejb:value-object"
paramName="compose">
<XDtMethod:methodTagValue tagName="ejb:value-object"
paramName="members"/> relation = home.create(added);
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifHasMethodTag tagName="ejb:value-object"
paramName="aggregate">
<XDtMethod:methodTagValue tagName="ejb:value-object"
paramName="members"/> relation = home.findByPrimaryKey(pk);
</XDtMethod:ifHasMethodTag>
! <XDtMethod:methodName/>().add(relation);
}
catch (Exception e){
--- 16,49 ----
</XDtMethod:ifHasMethodTag>
{
+ <XDtClass:pushClass
+value="<XDtEjbValueObj:currentRelationBeanClass/>"><XDtEjbPk:pkClass/></XDtClass:pushClass>
+ pk = null;
try
{
+ <XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="aggregate">
<XDtClass:pushClass value="<XDtEjbValueObj:currentRelationBeanClass/>">
<XDtEjbPk:ifHasPrimkeyField>
! pk = added.<XDtEjbPk:primkeyGetter/>();
</XDtEjbPk:ifHasPrimkeyField>
<XDtEjbPk:ifDoesntHavePrimkeyField>
! pk = new <XDtEjbPk:pkClass/>(<XDtEjbPk:pkfieldListFrom
name="added"/>);
</XDtEjbPk:ifDoesntHavePrimkeyField>
</XDtClass:pushClass>
! </XDtMethod:ifHasMethodTag>
<XDtMerge:merge
file="xdoclet/modules/ejb/entity/resources/entity-value-home.xdt">
</XDtMerge:merge>
<XDtMethod:ifHasMethodTag tagName="ejb:value-object"
paramName="compose">
<XDtMethod:methodTagValue tagName="ejb:value-object"
paramName="members"/> relation = home.create(added);
+ <XDtClass:pushClass value="<XDtEjbValueObj:currentRelationBeanClass/>">
+ <XDtEjbPk:ifHasPrimkeyField>
+ pk = relation.<XDtEjbPk:primkeyGetter/>();
+ </XDtEjbPk:ifHasPrimkeyField>
+ <XDtEjbPk:ifDoesntHavePrimkeyField>
+ pk = new <XDtEjbPk:pkClass/>(<XDtEjbPk:pkfieldListFrom
+name="relation"/>);
+ </XDtEjbPk:ifDoesntHavePrimkeyField>
+ </XDtClass:pushClass>
</XDtMethod:ifHasMethodTag>
<XDtMethod:ifHasMethodTag tagName="ejb:value-object"
paramName="aggregate">
<XDtMethod:methodTagValue tagName="ejb:value-object"
paramName="members"/> relation = home.findByPrimaryKey(pk);
</XDtMethod:ifHasMethodTag>
! <XDtMethod:methodName/>().add(relation);
}
catch (Exception e){
***************
*** 50,53 ****
--- 59,63 ----
throw new javax.ejb.EJBException(e);
}
+ return pk;
}
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel