User: dimc
Date: 02/03/11 05:42:49
Modified: core/resources/xdoclet/ejb dataobject.j
Log:
Added support for primitive arrays in hashCode() calculation in dataobjects.
Revision Changes Path
1.26 +42 -1 xdoclet/core/resources/xdoclet/ejb/dataobject.j
Index: dataobject.j
===================================================================
RCS file: /cvsroot/xdoclet/xdoclet/core/resources/xdoclet/ejb/dataobject.j,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -w -r1.25 -r1.26
--- dataobject.j 16 Feb 2002 14:08:55 -0000 1.25
+++ dataobject.j 11 Mar 2002 13:42:49 -0000 1.26
@@ -183,12 +183,53 @@
result = 37*result + (int)(l^(l>>>32));
}
</XDtType:ifIsOfType>
+ <XDtType:ifIsOfType type="boolean[]" value="return-type">
+ for (int i=0; i<<XDtMethod:propertyName/>.length; i++)
+ {
+ result = 37*result + (<XDtMethod:propertyName/>[i] ? 0 : 1);
+ }
+ </XDtType:ifIsOfType>
+ <XDtType:ifIsOfType type="long[]" value="return-type">
+ for (int i=0; i<<XDtMethod:propertyName/>.length; i++)
+ {
+ result = 37*result +
(int)(<XDtMethod:propertyName/>[i]^(<XDtMethod:propertyName/>[i]>>>32));
+ }
+ </XDtType:ifIsOfType>
+ <XDtType:ifIsOfType type="float[]" value="return-type">
+ for (int i=0; i<<XDtMethod:propertyName/>.length; i++)
+ {
+ result = 37*result + Float.floatToIntBits(<XDtMethod:propertyName/>[i]);
+ }
+ </XDtType:ifIsOfType>
+ <XDtType:ifIsOfType type="double[]" value="return-type">
+ for (int i=0; i<<XDtMethod:propertyName/>.length; i++)
+ {
+ long l = Double.doubleToLongBits(<XDtMethod:propertyName/>[i]);
+ result = 37*result + (int)(l^(l>>>32));
+ }
+ </XDtType:ifIsOfType>
+ <XDtType:ifIsPrimitiveArray value="<XDtMethod:methodType/>">
+ <XDtType:ifIsNotOfType type="boolean[]" value="return-type">
+ <XDtType:ifIsNotOfType type="long[]" value="return-type">
+ <XDtType:ifIsNotOfType type="float[]" value="return-type">
+ <XDtType:ifIsNotOfType type="double[]" value="return-type">
+ for (int i=0; i<<XDtMethod:propertyName/>.length; i++)
+ {
+ result = 37*result + (int) <XDtMethod:propertyName/>[i];
+ }
+ </XDtType:ifIsNotOfType>
+ </XDtType:ifIsNotOfType>
+ </XDtType:ifIsNotOfType>
+ </XDtType:ifIsNotOfType>
+ </XDtType:ifIsPrimitiveArray>
<XDtType:ifIsPrimitive value="<XDtMethod:methodType/>">
<XDtType:ifIsNotOfType type="boolean" value="return-type">
<XDtType:ifIsNotOfType type="long" value="return-type">
<XDtType:ifIsNotOfType type="float" value="return-type">
<XDtType:ifIsNotOfType type="double" value="return-type">
+ <XDtType:ifIsNotPrimitiveArray value="<XDtMethod:methodType/>">
result = 37*result + (int) <XDtMethod:propertyName/>;
+ </XDtType:ifIsNotPrimitiveArray>
</XDtType:ifIsNotOfType>
</XDtType:ifIsNotOfType>
</XDtType:ifIsNotOfType>
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel