Update of /cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3315/modules/ejb/src/xdoclet/modules/ejb/entity/resources
Modified Files: valueobject.xdt Log Message: Re-Added isIdentical() Method and renamed getUnderlying() to underlying() to avoid conflicts. Thanks to Tyler Ward for patches. (XDT-1313) Index: valueobject.xdt =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/resources/valueobject.xdt,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -r1.31 -r1.32 *** valueobject.xdt 5 Apr 2005 11:19:26 -0000 1.31 --- valueobject.xdt 6 Apr 2005 07:12:40 -0000 1.32 *************** *** 479,482 **** --- 479,540 ---- } + /** + * + * @deprecated use [EMAIL PROTECTED] #equals} + */ + public <XDtClass:ifClassTagValueEquals tagName="ejb:value-object" paramName="synchronization" value="full">synchronized </XDtClass:ifClassTagValueEquals>boolean isIdentical(Object other) + { + if (other instanceof <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>) + { + <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf> that = (<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>) other; + boolean lEquals = true; + <XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>" not-pk="true"> + <XDtType:ifIsPrimitive value="<XDtMethod:methodType/>"> + lEquals = lEquals && this.<XDtMethod:propertyName/> == that.<XDtMethod:propertyName/>; + </XDtType:ifIsPrimitive> + <XDtType:ifIsNotPrimitive value="<XDtMethod:methodType/>"> + if( this.<XDtMethod:propertyName/> == null ) + { + lEquals = lEquals && ( that.<XDtMethod:propertyName/> == null ); + } + else + { + lEquals = lEquals && this.<XDtMethod:propertyName/>.equals( that.<XDtMethod:propertyName/> ); + } + </XDtType:ifIsNotPrimitive> + </XDtEjbPersistent:forAllPersistentFields> + <XDtEjbValueObj:forAllRelations superclasses="false" valueobject="<XDtEjbValueObj:valueObjectMatch/>"> + <XDtMethod:ifDoesntHaveMethodTag tagName="ejb:value-object" paramName="type"> + if( this.<XDtEjbValueObj:currentAggregateName/> == null ) + { + lEquals = lEquals && ( that.<XDtEjbValueObj:currentAggregateName/> == null ); + } + else + { + lEquals = lEquals && this.<XDtEjbValueObj:currentAggregateName/>.equals( that.<XDtEjbValueObj:currentAggregateName/> ); + } + </XDtMethod:ifDoesntHaveMethodTag> + <XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type"> + if( this.get<XDtEjbValueObj:currentAggregateName/>s() == null ) + { + lEquals = lEquals && ( that.get<XDtEjbValueObj:currentAggregateName/>s() == null ); + } + else + { + lEquals = lEquals && java.util.Arrays.equals(this.get<XDtEjbValueObj:currentAggregateName/>s() , that.get<XDtEjbValueObj:currentAggregateName/>s()) ; + } + </XDtMethod:ifHasMethodTag> + </XDtEjbValueObj:forAllRelations> + + return lEquals; + } + else + { + return false; + } + } + + + public <XDtClass:ifClassTagValueEquals tagName="ejb:value-object" paramName="synchronization" value="full">synchronized </XDtClass:ifClassTagValueEquals>boolean equals(Object other) { *************** *** 895,899 **** implements java.lang.Cloneable, java.io.Serializable<XDtClass:ifClassTagValueEquals tagName="ejb:value-object" paramName="ordering" value="strict">, java.lang.Comparable</XDtClass:ifClassTagValueEquals> <XDtEjbValueObj:valueObjectImplements/> { ! private <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf> getUnderlying() { return <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>.this; } --- 953,957 ---- implements java.lang.Cloneable, java.io.Serializable<XDtClass:ifClassTagValueEquals tagName="ejb:value-object" paramName="ordering" value="strict">, java.lang.Comparable</XDtClass:ifClassTagValueEquals> <XDtEjbValueObj:valueObjectImplements/> { ! private <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf> underlying() { return <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>.this; } *************** *** 902,906 **** <XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>"> public <XDtMethod:methodType/> <XDtMethod:getterMethod/>() { ! return <XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>.this.<XDtMethod:propertyName/>; } --- 960,964 ---- <XDtEjbPersistent:forAllPersistentFields superclasses="true" valueobject="<XDtEjbValueObj:valueObjectMatch/>"> public <XDtMethod:methodType/> <XDtMethod:getterMethod/>() { ! return underlying().<XDtMethod:propertyName/>; } *************** *** 910,935 **** public <XDtEjbValueObj:currentAggregateType/> get<XDtEjbValueObj:currentAggregateName/>() { ! return getUnderlying().<XDtEjbValueObj:currentAggregateName/>; } </XDtEjbValueObj:ifIsNotCollection> <XDtEjbValueObj:ifIsCollection> public <XDtEjbValueObj:collectionType/> getAdded<XDtEjbValueObj:currentAggregateName plural="true"/>() { ! return getUnderlying().getAdded<XDtEjbValueObj:currentAggregateName plural="true"/>(); } public <XDtEjbValueObj:collectionType/> getOnceAdded<XDtEjbValueObj:currentAggregateName plural="true"/>() { ! return getUnderlying().getOnceAdded<XDtEjbValueObj:currentAggregateName plural="true"/>(); } public <XDtEjbValueObj:collectionType/> getRemoved<XDtEjbValueObj:currentAggregateName plural="true"/>() { ! return getUnderlying().getRemoved<XDtEjbValueObj:currentAggregateName plural="true"/>(); } public <XDtEjbValueObj:collectionType/> getUpdated<XDtEjbValueObj:currentAggregateName plural="true"/>() { ! return getUnderlying().getUpdated<XDtEjbValueObj:currentAggregateName plural="true"/>(); } public <XDtEjbValueObj:collectionType/> get<XDtEjbValueObj:currentAggregateName/>Collection() { ! return getUnderlying().get<XDtEjbValueObj:currentAggregateName/>Collection(); } </XDtEjbValueObj:ifIsCollection> </XDtEjbValueObj:forAllRelations> <XDtClass:ifClassTagValueEquals tagName="ejb:value-object" paramName="ordering" value="strict"> --- 968,1015 ---- public <XDtEjbValueObj:currentAggregateType/> get<XDtEjbValueObj:currentAggregateName/>() { ! return underlying().<XDtEjbValueObj:currentAggregateName/>; } </XDtEjbValueObj:ifIsNotCollection> <XDtEjbValueObj:ifIsCollection> public <XDtEjbValueObj:collectionType/> getAdded<XDtEjbValueObj:currentAggregateName plural="true"/>() { ! return underlying().getAdded<XDtEjbValueObj:currentAggregateName plural="true"/>(); } public <XDtEjbValueObj:collectionType/> getOnceAdded<XDtEjbValueObj:currentAggregateName plural="true"/>() { ! return underlying().getOnceAdded<XDtEjbValueObj:currentAggregateName plural="true"/>(); } public <XDtEjbValueObj:collectionType/> getRemoved<XDtEjbValueObj:currentAggregateName plural="true"/>() { ! return underlying().getRemoved<XDtEjbValueObj:currentAggregateName plural="true"/>(); } public <XDtEjbValueObj:collectionType/> getUpdated<XDtEjbValueObj:currentAggregateName plural="true"/>() { ! return underlying().getUpdated<XDtEjbValueObj:currentAggregateName plural="true"/>(); } public <XDtEjbValueObj:collectionType/> get<XDtEjbValueObj:currentAggregateName/>Collection() { ! return underlying().get<XDtEjbValueObj:currentAggregateName/>Collection(); } </XDtEjbValueObj:ifIsCollection> </XDtEjbValueObj:forAllRelations> + public int hashCode() { + return 101 * underlying().hashCode(); + } + + public boolean equals(Object o) { + + if(o instanceof ReadOnly<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>) { + return this.equals((ReadOnly<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf>) o); + } + + return false; + } + + public boolean equals(ReadOnly<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf> that) { + if(null == that) { + return false; + } + + return this.underlying().equals(that.underlying()); + } + + <XDtClass:ifClassTagValueEquals tagName="ejb:value-object" paramName="ordering" value="strict"> *************** *** 964,968 **** */ public int compareTo(ReadOnly<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf> that) { ! return getUnderlying().compareTo(that.getUnderlying()); } --- 1044,1048 ---- */ public int compareTo(ReadOnly<XDtClass:classOf><XDtEjbValueObj:valueObjectClass/></XDtClass:classOf> that) { ! return underlying().compareTo(that.underlying()); } ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ xdoclet-devel mailing list xdoclet-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xdoclet-devel