Class Objects.HashCodeBuilder

java.lang.Object
org.jboss.logging.processor.util.Objects.HashCodeBuilder
Enclosing class:
Objects

public static class Objects.HashCodeBuilder extends Object
A builder to simplify the building of hash codes.
  • Field Details

    • seed

      private final int seed
    • hash

      private int hash
  • Constructor Details

    • HashCodeBuilder

      private HashCodeBuilder(int seed)
      Private constructor for builder pattern.
      Parameters:
      seed - the seed for the hash code.
  • Method Details

    • builder

      public static Objects.HashCodeBuilder builder()
      Creates a new builder with 31 as the seed.
      Returns:
      the new builder.
    • builder

      public static Objects.HashCodeBuilder builder(int seed)
      Creates a new builder with the seed that is passed.
      Parameters:
      seed - the seed for the hash code.
      Returns:
      the new builder.
    • add

      public Objects.HashCodeBuilder add(boolean b)
      Adds the hash code of a boolean to the final hash code value.
      Parameters:
      b - a boolean to calculate the hash code of.
      Returns:
      the current builder.
    • add

      public Objects.HashCodeBuilder add(char c)
      Adds the hash code of a character to the final hash code value.
      Parameters:
      c - a character to calculate the hash code of.
      Returns:
      the current builder.
    • add

      public Objects.HashCodeBuilder add(int i)
      Adds the hash code of an integer to the final hash code value.

      Both shorts and bytes use this method to add the hash value.

      Parameters:
      i - an integer to calculate the hash code of.
      Returns:
      the current builder.
    • add

      public Objects.HashCodeBuilder add(long lng)
      Adds the hash code of a long to the final hash code value.
      Parameters:
      lng - a long to calculate the hash code of.
      Returns:
      the current builder.
    • add

      public Objects.HashCodeBuilder add(float flt)
      Adds the hash code of a float to the final hash code value.
      Parameters:
      flt - a float to calculate the hash code of.
      Returns:
      the current builder.
    • add

      public Objects.HashCodeBuilder add(double dbl)
      Adds the hash code of a double to the final hash code value.
      Parameters:
      dbl - a double to calculate the hash code of.
      Returns:
      the current builder.
    • add

      public Objects.HashCodeBuilder add(Object obj)
      Adds the hash code of an object to the final hash code value.

      If the obj is null the hash code is calculated using add(int) with a value of 0. Otherwise the hash code is calculated using add(int) with a value of obj.hashCode(), unless the object is an array. In this case the array is processed and this is recursively invoked.

      Parameters:
      obj - the object to calculate the hash code of.
      Returns:
      the current builder.
    • toHashCode

      public int toHashCode()
      Returns the calculated hash code.
      Returns:
      the calculated hash code.
    • hashCode

      public int hashCode()
      This method overrides the default Object#hashCode(), but does not return a proper hash of this builder. Returns the value of toHashCode() to insure the incorrect hash code is not returned by mistake.
      Overrides:
      hashCode in class Object
      Returns:
      the value of toHashCode().
    • equals

      public boolean equals(Object obj)
      Should never be invoked on this object.
      Overrides:
      equals in class Object
      Parameters:
      obj - an object.
    • calc

      private int calc()
      Calculates the default.
      Returns:
      the default hash value.