private boolean valuesEqualNullSafe(@Nullable V value,
                                      @Nullable V anotherValue) {
    if ((anotherValue == null && value == null)) {
      return true;
    }
    if (valueEquality == null) {
      return false;
    }
    if ((anotherValue != null && value != null)
        && valueEquality.isEqual(value, anotherValue)) {
      return true;
    }
    return false;
  }
private boolean valuesEqualNullSafe(@Nullable V value,
                                      @Nullable V anotherValue)