commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bay...@apache.org
Subject cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang/builder HashCodeBuilder.java
Date Wed, 15 Jan 2003 20:51:57 GMT
bayard      2003/01/15 12:51:57

  Modified:    lang/src/java/org/apache/commons/lang/builder
                        HashCodeBuilder.java
  Log:
  Javadoc patch for java example.
  Submitted by:	Christopher M. Judd <cjudd@columbus.rr.com>
  
  Revision  Changes    Path
  1.8       +27 -27    jakarta-commons/lang/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java
  
  Index: HashCodeBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- HashCodeBuilder.java	23 Dec 2002 00:20:31 -0000	1.7
  +++ HashCodeBuilder.java	15 Jan 2003 20:51:57 -0000	1.8
  @@ -76,7 +76,7 @@
    *   int age;
    *   boolean isSmoker;
    *   ...
  - * 
  + *
    *   public int hashCode() {
    *     // you pick a hard-coded, randomly chosen, non-zero, odd number
    *     // ideally different for each class
  @@ -88,29 +88,29 @@
    *   }
    * }
    * </pre>
  - * 
  + *
    * <p>If required, the superclass hashCode can be added using {@link #appendSuper}.</p>
    *
    * <p>Alternatively, there is a method that uses reflection to determine
  - * the fields to test. Because these fields are usually private, the method, 
  + * the fields to test. Because these fields are usually private, the method,
    * <code>reflectionHashCode</code>, uses <code>Field.setAccessible</code>
to
  - * change the visibility of the fields. This will fail under a security manager, 
  + * change the visibility of the fields. This will fail under a security manager,
    * unless the appropriate permissions are set up correctly. It is also slower
    * than testing explicitly.</p>
    *
    * <p>A typical invocation for this method would look like:</p>
    * <pre>
  - * public boolean hashCode(Object o) {
  + * public int hashCode() {
    *   return HashCodeBuilder.reflectionHashCode(this);
    * }
    * </pre>
  - * 
  + *
    * @author Stephen Colebourne
    * @since 1.0
    * @version $Id$
    */
   public class HashCodeBuilder {
  -    
  +
       /**
        * Constant to use in building the hashCode
        */
  @@ -119,7 +119,7 @@
        * Running total of the hashCode
        */
       private int iTotal = 0;
  -    
  +
       /**
        * <p>Constructor for HashCodeBuilder.</p>
        *
  @@ -131,7 +131,7 @@
           iConstant = 37;
           iTotal = 17;
       }
  -    
  +
       /**
        * <p>Constructor for <code>HashCodeBuilder</code>.</p>
        *
  @@ -140,7 +140,7 @@
        * not vital.</p>
        *
        * <p>Prime numbers are preferred, especially for the multiplier.</p>
  -     * 
  +     *
        * @param initialNonZeroOddNumber  a non-zero, odd number used as the initial value
        * @param multiplierNonZeroOddNumber  a non-zero, odd number used as the multiplier
        * @throws IllegalArgumentException if the number is zero or even
  @@ -164,7 +164,7 @@
       }
   
       //-------------------------------------------------------------------------
  -    
  +
       /**
        * <p>This method uses reflection to build a valid hash code.</p>
        *
  @@ -214,7 +214,7 @@
       public static int reflectionHashCode(Object object, boolean testTransients) {
           return reflectionHashCode(17, 37, object, testTransients);
       }
  -        
  +
       /**
        * <p>This method uses reflection to build a valid hash code.</p>
        *
  @@ -231,7 +231,7 @@
        * <p>Two randomly chosen, non-zero, odd numbers must be passed in. Ideally
        * these should be different for each class, however this is not vital.
        * Prime numbers are preferred, especially for the multiplier.</p>
  -     * 
  +     *
        * @param initialNonZeroOddNumber  a non-zero, odd number used as the initial value
        * @param multiplierNonZeroOddNumber  a non-zero, odd number used as the multiplier
        * @param object  the Object to create a <code>hashCode</code> for
  @@ -240,11 +240,11 @@
        * @throws IllegalArgumentException if the number is zero or even
        */
       public static int reflectionHashCode(
  -            int initialNonZeroOddNumber, int multiplierNonZeroOddNumber, 
  +            int initialNonZeroOddNumber, int multiplierNonZeroOddNumber,
               Object object) {
           return reflectionHashCode(initialNonZeroOddNumber, multiplierNonZeroOddNumber,
object, false);
       }
  -    
  +
       /**
        * <p>This method uses reflection to build a valid hash code.</p>
        *
  @@ -262,7 +262,7 @@
        * <p>Two randomly chosen, non-zero, odd numbers must be passed in. Ideally
        * these should be different for each class, however this is not vital.
        * Prime numbers are preferred, especially for the multiplier.</p>
  -     * 
  +     *
        * @param initialNonZeroOddNumber
        * @param multiplierNonZeroOddNumber
        * @param object  the Object to create a <code>hashCode</code> for
  @@ -274,7 +274,7 @@
       public static int reflectionHashCode(
               int initialNonZeroOddNumber, int multiplierNonZeroOddNumber,
               Object object, boolean testTransients) {
  -                
  +
           if (object == null) {
               throw new IllegalArgumentException("The object to build a hash code for must
not be null");
           }
  @@ -299,7 +299,7 @@
       }
   
       //-------------------------------------------------------------------------
  -    
  +
       /**
        * <p>Adds the result of super.hashCode() to this builder.</p>
        *
  @@ -310,9 +310,9 @@
           iTotal = iTotal * iConstant + superHashCode;
           return this;
       }
  -    
  +
       //-------------------------------------------------------------------------
  -    
  +
       /**
        * <p>Append a <code>hashCode</code> for an <code>Object</code>.</p>
        *
  @@ -322,12 +322,12 @@
       public HashCodeBuilder append(Object object) {
           if (object == null) {
               iTotal = iTotal * iConstant;
  -            
  +
           } else {
               if (object.getClass().isArray() == false) {
  -                //the simple case, not an array, just the element 
  +                //the simple case, not an array, just the element
                   iTotal = iTotal * iConstant + object.hashCode();
  -                
  +
               } else {
                   //'Switch' on type of array, to dispatch to the correct handler
                   // This handles multi dimensional arrays
  @@ -347,7 +347,7 @@
                       append((float[]) object);
                   } else if (object instanceof boolean[]) {
                       append((boolean[]) object);
  -                } else { 
  +                } else {
                       // Not an array of primitives
                       append((Object[]) object);
                   }
  @@ -598,9 +598,9 @@
   
       /**
        * <p>Return the computed <code>hashCode</code>.</p>
  -     * 
  +     *
        * @return <code>hashCode</code> based on the fields appended
  -     */    
  +     */
       public int toHashCode() {
           return iTotal;
       }
  
  
  

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message