Package com.google.android.exoplayer2.upstream.cache

## Interface ContentMetadata

- All Known Implementing Classes:
    `DefaultContentMetadata`

      public interface ContentMetadata

  Interface for an immutable snapshot of keyed metadata.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `KEY_CONTENT_LENGTH` | Key for content length in bytes (type: long).
    `static String` | `KEY_CUSTOM_PREFIX` | Prefix for custom metadata keys.
    `static String` | `KEY_REDIRECTED_URI` | Key for redirected uri (type: String).

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `contains​(String key)` | Returns whether the metadata is available.
    `byte[]` | `get​(String key, byte[] defaultValue)` | Returns a metadata value.
    `long` | `get​(String key, long defaultValue)` | Returns a metadata value.
    `String` | `get​(String key, String defaultValue)` | Returns a metadata value.
    `static long` | `getContentLength​(ContentMetadata contentMetadata)` | Returns the value stored under `KEY_CONTENT_LENGTH`, or `C.LENGTH_UNSET` if not set.
    `static Uri` | `getRedirectedUri​(ContentMetadata contentMetadata)` | Returns the value stored under `KEY_REDIRECTED_URI` as a `Uri`, or {code null} if not set.

- - ### Field Detail

    - #### KEY_CUSTOM_PREFIX

          static final String KEY_CUSTOM_PREFIX

      Prefix for custom metadata keys. Applications can use keys starting with this prefix without any risk of their keys colliding with ones defined by the ExoPlayer library.
      See Also:
        Constant Field Values

    - #### KEY_REDIRECTED_URI

          static final String KEY_REDIRECTED_URI

      Key for redirected uri (type: String).
      See Also:
        Constant Field Values

    - #### KEY_CONTENT_LENGTH

          static final String KEY_CONTENT_LENGTH

      Key for content length in bytes (type: long).
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### get

          @Nullable
          byte[] get​(String key,
                     @Nullable
                     byte[] defaultValue)

      Returns a metadata value.
      Parameters:
        `key` - Key of the metadata to be returned.
        `defaultValue` - Value to return if the metadata doesn't exist.
      Returns:
        The metadata value.

    - #### get

          @Nullable
          String get​(String key,
                     @Nullable
                     String defaultValue)

      Returns a metadata value.
      Parameters:
        `key` - Key of the metadata to be returned.
        `defaultValue` - Value to return if the metadata doesn't exist.
      Returns:
        The metadata value.

    - #### get

          long get​(String key,
                   long defaultValue)

      Returns a metadata value.
      Parameters:
        `key` - Key of the metadata to be returned.
        `defaultValue` - Value to return if the metadata doesn't exist.
      Returns:
        The metadata value.

    - #### contains

          boolean contains​(String key)

      Returns whether the metadata is available.

    - #### getContentLength

          static long getContentLength​(ContentMetadata contentMetadata)

      Returns the value stored under `KEY_CONTENT_LENGTH`, or `C.LENGTH_UNSET` if not set.

    - #### getRedirectedUri

          @Nullable
          static Uri getRedirectedUri​(ContentMetadata contentMetadata)

      Returns the value stored under `KEY_REDIRECTED_URI` as a `Uri`, or {code null} if not set.