Class CachedHashCodeInitializer<T>

java.lang.Object
nl.jqno.equalsverifier.internal.util.CachedHashCodeInitializer<T>

public class CachedHashCodeInitializer<T> extends Object
Records an initializer for a cached hash code (field name and recompute method), if any, for the object to be verified.

EqualsVerifier may then, instead of calling Object.hashCode() to obtain the hash code, call the getInitializedHashCode(Object) method in this class:

* If this class has recorded a cached hash code initializer for the object, that method will recompute and update the cached hash code in the object automatically, before returning the result of Object.hashCode().

* If this class has not recorded a cached hash code initializer for the object, it will simply return the value of Object.hashCode() as normal instead.

  • Field Details

    • passthrough

      private final boolean passthrough
    • cachedHashCodeField

      private final FieldProbe cachedHashCodeField
    • calculateMethod

      private final Method calculateMethod
    • example

      private final T example
  • Constructor Details

    • CachedHashCodeInitializer

      private CachedHashCodeInitializer()
    • CachedHashCodeInitializer

      private CachedHashCodeInitializer(boolean passthrough, FieldProbe cachedHashCodeField, Method calculateMethod, T example)
    • CachedHashCodeInitializer

      public CachedHashCodeInitializer(Class<?> type, String cachedHashCodeField, String calculateHashCodeMethod, T example)
  • Method Details

    • passthrough

      public static <T> CachedHashCodeInitializer<T> passthrough()
    • lombokCachedHashcode

      public static <T> CachedHashCodeInitializer<T> lombokCachedHashcode(T example)
    • isPassthrough

      public boolean isPassthrough()
    • getExample

      public T getExample()
    • getCachedHashCodeFieldName

      public String getCachedHashCodeFieldName()
    • getInitializedHashCode

      public int getInitializedHashCode(Object object)
    • recomputeCachedHashCode

      private void recomputeCachedHashCode(Object object)
    • findCachedHashCodeField

      private static FieldProbe findCachedHashCodeField(Class<?> type, String cachedHashCodeFieldName)
    • findCalculateHashCodeMethod

      private static Method findCalculateHashCodeMethod(Class<?> type, String calculateHashCodeMethodName, boolean acceptPublicMethod)