Class HashCodeBuilder

java.lang.Object
org.apache.cayenne.util.HashCodeBuilder

@Deprecated(since="5.0", forRemoval=true) public class HashCodeBuilder extends Object
Deprecated, for removal: This API element is subject to removal in a future version.
use Objects.hash(Object...) or a manual 31 * h + Objects.hashCode(x) loop
Assists in implementing Object.hashCode() methods. The code is based on HashCodeBuilder from commons-lang 2.1.
Since:
3.0
  • Constructor Summary

    Constructors
    Constructor
    Description
    Deprecated, for removal: This API element is subject to removal in a future version.
    Uses two hard coded choices for the constants needed to build a hashCode.
    HashCodeBuilder(int initialNonZeroOddNumber, int multiplierNonZeroOddNumber)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Two randomly chosen, non-zero, odd numbers must be passed in.
  • Method Summary

    Modifier and Type
    Method
    Description
    append(boolean value)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a boolean.
    append(boolean[] array)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a boolean array.
    append(byte value)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a byte.
    append(byte[] array)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a byte array.
    append(char value)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a char.
    append(char[] array)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a char array.
    append(double value)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a double.
    append(double[] array)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a double array.
    append(float value)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a float.
    append(float[] array)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a float array.
    append(int value)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for an int.
    append(int[] array)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for an int array.
    append(long value)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a long.
    append(long[] array)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a long array.
    append(short value)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a short.
    append(short[] array)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for a short array.
    append(Object object)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for an Object.
    append(Object[] array)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Append a hashCode for an Object array.
    appendSuper(int superHashCode)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Adds the result of super.hashCode() to this builder.
    int
    Deprecated, for removal: This API element is subject to removal in a future version.
    Return the computed hashCode.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • HashCodeBuilder

      public HashCodeBuilder()
      Deprecated, for removal: This API element is subject to removal in a future version.

      Uses two hard coded choices for the constants needed to build a hashCode.

    • HashCodeBuilder

      public HashCodeBuilder(int initialNonZeroOddNumber, int multiplierNonZeroOddNumber)
      Deprecated, for removal: This API element is subject to removal in a future version.

      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.

      Parameters:
      initialNonZeroOddNumber - a non-zero, odd number used as the initial value
      multiplierNonZeroOddNumber - a non-zero, odd number used as the multiplier
      Throws:
      IllegalArgumentException - if the number is zero or even
  • Method Details

    • appendSuper

      public HashCodeBuilder appendSuper(int superHashCode)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Adds the result of super.hashCode() to this builder.

      Parameters:
      superHashCode - the result of calling super.hashCode()
      Returns:
      this HashCodeBuilder, used to chain calls.
      Since:
      2.0
    • append

      public HashCodeBuilder append(Object object)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for an Object.

      Parameters:
      object - the Object to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(long value)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a long.

      Parameters:
      value - the long to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(int value)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for an int.

      Parameters:
      value - the int to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(short value)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a short.

      Parameters:
      value - the short to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(char value)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a char.

      Parameters:
      value - the char to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(byte value)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a byte.

      Parameters:
      value - the byte to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(double value)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a double.

      Parameters:
      value - the double to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(float value)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a float.

      Parameters:
      value - the float to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(boolean value)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a boolean.

      This adds iConstant * 1 to the hashCode and not a 1231 or 1237 as done in java.lang.Boolean. This is in accordance with the Effective Java design.

      Parameters:
      value - the boolean to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(Object[] array)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for an Object array.

      Parameters:
      array - the array to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(long[] array)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a long array.

      Parameters:
      array - the array to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(int[] array)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for an int array.

      Parameters:
      array - the array to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(short[] array)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a short array.

      Parameters:
      array - the array to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(char[] array)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a char array.

      Parameters:
      array - the array to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(byte[] array)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a byte array.

      Parameters:
      array - the array to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(double[] array)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a double array.

      Parameters:
      array - the array to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(float[] array)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a float array.

      Parameters:
      array - the array to add to the hashCode
      Returns:
      this
    • append

      public HashCodeBuilder append(boolean[] array)
      Deprecated, for removal: This API element is subject to removal in a future version.

      Append a hashCode for a boolean array.

      Parameters:
      array - the array to add to the hashCode
      Returns:
      this
    • toHashCode

      public int toHashCode()
      Deprecated, for removal: This API element is subject to removal in a future version.

      Return the computed hashCode.

      Returns:
      hashCode based on the fields appended