/**
   * Adds mappings to a ContentValues object for the data in the passed in ObjectMetadata
   *
   * @param metadata The ObjectMetadata the content values should be filled with
   * @return the ContentValues
   */
  private ContentValues generateContentValuesForObjectMetadata(ObjectMetadata metadata) {
    ContentValues values = new ContentValues();
    values.put(
        TransferTable.COLUMN_USER_METADATA, JsonUtils.mapToString(metadata.getUserMetadata()));
    values.put(TransferTable.COLUMN_HEADER_CONTENT_TYPE, metadata.getContentType());
    values.put(TransferTable.COLUMN_HEADER_CONTENT_ENCODING, metadata.getContentEncoding());
    values.put(TransferTable.COLUMN_HEADER_CACHE_CONTROL, metadata.getCacheControl());
    values.put(TransferTable.COLUMN_CONTENT_MD5, metadata.getContentMD5());
    values.put(TransferTable.COLUMN_HEADER_CONTENT_DISPOSITION, metadata.getContentDisposition());
    values.put(TransferTable.COLUMN_SSE_ALGORITHM, metadata.getSSEAlgorithm());
    values.put(TransferTable.COLUMN_EXPIRATION_TIME_RULE_ID, metadata.getExpirationTimeRuleId());
    if (metadata.getHttpExpiresDate() != null) {
      values.put(
          TransferTable.COLUMN_HTTP_EXPIRES_DATE,
          String.valueOf(metadata.getHttpExpiresDate().getTime()));
    }

    return values;
  }