Package com.castlabs.android.network

# Class DefaultDataSourceFactory

java.lang.Object
com.castlabs.android.network.DefaultDataSourceFactory

All Implemented Interfaces:
  `DataSourceFactory`, `com.google.android.exoplayer2.upstream.DataSource.Factory`

public class DefaultDataSourceFactory extends Object implements DataSourceFactory
The default implementation of the `DataSourceFactory`.

Since:
  3.0.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultDataSourceFactory(Context context)`
  `DefaultDataSourceFactory(Context context, com.google.android.exoplayer2.upstream.TransferListener transferListener)`
  `DefaultDataSourceFactory(Context context, com.google.android.exoplayer2.upstream.TransferListener transferListener, HttpListener httpListener, PlayerController playerController)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addHeaderParameter(String key, String value)`
  Adds a header parameter that will be added to each HTTP connection header that is generated with a `DataSource` created by this factory.
  `void`
  `addQueryParameter(String key, String value)`
  Adds a query parameter that will be appended to each HTTP URL.
  `void`
  `clearHeaderParameters()`
  Removes all header parameters added previously with `DataSourceFactory.addHeaderParameter(String, String)`.
  `void`
  `clearQueryParameters()`
  Removes all query parameters added previously with `DataSourceFactory.addQueryParameter(String, String)`
  `com.google.android.exoplayer2.upstream.DataSource`
  `createDataSource()`
  `com.google.android.exoplayer2.upstream.DataSource`
  `createDataSource(int requestType)`
  Creates a data source for the given request type
  `Map<String,String>`
  `getHeaderParameter()`
  `Map<String,String>`
  `getQueryParameter()`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DefaultDataSourceFactory

    public DefaultDataSourceFactory(@NonNull Context context)

  - ### DefaultDataSourceFactory

    public DefaultDataSourceFactory(@NonNull Context context, @Nullable com.google.android.exoplayer2.upstream.TransferListener transferListener)

  - ### DefaultDataSourceFactory

    public DefaultDataSourceFactory(@NonNull Context context, @Nullable com.google.android.exoplayer2.upstream.TransferListener transferListener, @Nullable HttpListener httpListener, @Nullable PlayerController playerController)

- ## Method Details

  - ### createDataSource

    @NonNull public com.google.android.exoplayer2.upstream.DataSource createDataSource()
    Specified by:
      `createDataSource` in interface `com.google.android.exoplayer2.upstream.DataSource.Factory`

  - ### createDataSource

    public com.google.android.exoplayer2.upstream.DataSource createDataSource(int requestType)
    Description copied from interface: `DataSourceFactory`
    Creates a data source for the given request type
    Specified by:
      `createDataSource` in interface `DataSourceFactory`
    Parameters:
      `requestType` - The request type
    Returns:
      dataSource the data source

  - ### addHeaderParameter

    public void addHeaderParameter(@NonNull String key, @Nullable String value)
    Description copied from interface: `DataSourceFactory`
    Adds a header parameter that will be added to each HTTP connection header that is generated with a `DataSource` created by this factory.

    Note that you will need to call this before a call to `DataSource.Factory.createDataSource()` in order to successfully add the parameter.
    Specified by:
      `addHeaderParameter` in interface `DataSourceFactory`
    Parameters:
      `key` - the key
      `value` - the value or null to remove any previously added endtry with the given key

  - ### clearHeaderParameters

    public void clearHeaderParameters()
    Description copied from interface: `DataSourceFactory`
    Removes all header parameters added previously with `DataSourceFactory.addHeaderParameter(String, String)`.
    Specified by:
      `clearHeaderParameters` in interface `DataSourceFactory`

  - ### addQueryParameter

    public void addQueryParameter(@NonNull String key, @Nullable String value)
    Description copied from interface: `DataSourceFactory`
    Adds a query parameter that will be appended to each HTTP URL.

    Note that you will need to call this before a call to `DataSource.Factory.createDataSource()` in order to successfully add the parameter.
    Specified by:
      `addQueryParameter` in interface `DataSourceFactory`
    Parameters:
      `key` - the key
      `value` - the value or null to remove any previously added entry with the given key

  - ### clearQueryParameters

    public void clearQueryParameters()
    Description copied from interface: `DataSourceFactory`
    Removes all query parameters added previously with `DataSourceFactory.addQueryParameter(String, String)`
    Specified by:
      `clearQueryParameters` in interface `DataSourceFactory`

  - ### getHeaderParameter

    @NonNull public Map<String,String> getHeaderParameter()
    Specified by:
      `getHeaderParameter` in interface `DataSourceFactory`
    Returns:
      A non-null map of all registered header parameter

  - ### getQueryParameter

    @NonNull public Map<String,String> getQueryParameter()
    Specified by:
      `getQueryParameter` in interface `DataSourceFactory`
    Returns:
      A non-null map of all registered query parameter