Project Report: fawkez

Packagesummary org.jcoderz.commons.util

org.jcoderz.commons.util.HashCode

LineHitsNoteSource
1  /*
2   * $Id: HashCode.java 1011 2008-06-16 17:57:36Z amandel $
3   *
4   * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions are
8   * met:
9   *
10   *    * Redistributions of source code must retain the above copyright
11   *      notice, this list of conditions and the following disclaimer.
12   *    * Redistributions in binary form must reproduce the above
13   *      copyright notice, this list of conditions and the following
14   *      disclaimer in the documentation and/or other materials
15   *      provided with the distribution.
16   *    * Neither the name of the jCoderZ.org Project nor the names of
17   *      its contributors may be used to endorse or promote products
18   *      derived from this software without specific prior written
19   *      permission.
20   *
21   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  package org.jcoderz.commons.util;
34  
35  import java.io.Serializable;
36  
37  /**
38   * The class can be used to easily implement {@link Object#hashCode()}.
39   *
40   * @author Michael Griffel
41   *
42   */
43100 public final class HashCode
44        implements Serializable
45  {
46     private static final long serialVersionUID = 1688234599683404302L;
47  
48100    private int mHashCode = HashCodeUtil.SEED;
49  
50     /**
51      * Updates the internal hash code with the given Boolean.
52      * @param aBoolean the Boolean to add to the hash code.
53      */
54     public void hash (boolean aBoolean)
55     {
56100       mHashCode = HashCodeUtil.hash(mHashCode, aBoolean);
57100    }
58  
59     /**
60      * Updates the internal hash code with the given character.
61      * @param aChar the character to add to the hash code.
62      */
63     public void hash (char aChar)
64     {
65100       mHashCode = HashCodeUtil.hash(mHashCode, aChar);
66100    }
67  
68     /**
69      * Updates the internal hash code with the given double.
70      * @param aDouble the double to add to the hash code.
71      */
72     public void hash (double aDouble)
73     {
74100       mHashCode = HashCodeUtil.hash(mHashCode, aDouble);
75100    }
76  
77     /**
78      * Updates the internal hash code with the given float.
79      * @param aFloat the float to add to the hash code.
80      */
81     public void hash (float aFloat)
82     {
83100       mHashCode = HashCodeUtil.hash(mHashCode, aFloat);
84100    }
85  
86     /**
87      * Updates the internal hash code with the given integer.
88      * @param aInt the integer to add to the hash code.
89      */
90     public void hash (int aInt)
91     {
92100       mHashCode = HashCodeUtil.hash(mHashCode, aInt);
93100    }
94  
95     /**
96      * Updates the internal hash code with the given long.
97      * @param aLong the long to add to the hash code.
98      */
99     public void hash (long aLong)
100     {
101100       mHashCode = HashCodeUtil.hash(mHashCode, aLong);
102100    }
103  
104     /**
105      * Updates the internal hash code with the given object.
106      * <code>aObject</code> is a possibly-null object field, and possibly
107      * an array. If <code>aObject</code> is an array, then each element
108      * may be a primitive or a possibly-null object.
109      *
110      * @param aObject the object to add to the hash code.
111      */
112     public void hash (Object aObject)
113     {
114100       mHashCode = HashCodeUtil.hash(mHashCode, aObject);
115100    }
116  
117     /**
118      * Returns the current snapshot of the hash code.
119      * @return the current snapshot of the hash code.
120      */
121     public int toInt ()
122     {
123100       return mHashCode;
124     }
125  }

Findings in this File