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

Reply via email to