# PositionalDataSource

Summary:[Nested Classes](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#nestedclasses)\|[Ctors](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#pubctors)\|[Methods](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#inhmethods)  

# PositionalDataSource

| The`android.arch`Architecture Components packages are no longer maintained. They have been superseded by the corresponding[androidx.\*](https://developer.android.com/jetpack/androidx/migrate)packages. See[androidx.paging.PositionalDataSource](https://developer.android.com/reference/androidx/paging/PositionalDataSource)instead.

`
public


abstract
class
PositionalDataSource
`  
`


``

extends `[DataSource](https://developer.android.com/reference/android/arch/paging/DataSource)`<Integer, T>


``


`

|---|---|-----------------------------------------------|
| java.lang.Object                                    |||
| ↳ | [android.arch.paging.DataSource](https://developer.android.com/reference/android/arch/paging/DataSource)\<java.lang.Integer, T\> ||
|   | ↳ | android.arch.paging.PositionalDataSource\<T\> |

<br />

*** ** * ** ***

Position-based data loader for a fixed-size, countable data set, supporting fixed-size loads at arbitrary page positions.

Extend PositionalDataSource if you can load pages of a requested size at arbitrary positions, and provide a fixed item count. If your data source can't support loading arbitrary requested page sizes (e.g. when network page size constraints are only known at runtime), use either[PageKeyedDataSource](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource)or[ItemKeyedDataSource](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource)instead.

Note that unless[placeholders are disabled](https://developer.android.com/reference/android/arch/paging/PagedList.Config#enablePlaceholders)PositionalDataSource requires counting the size of the data set. This allows pages to be tiled in at arbitrary, non-contiguous locations based upon what the user observes in a[PagedList](https://developer.android.com/reference/android/arch/paging/PagedList). If placeholders are disabled, initialize with the two parameter[onResult(List, int)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback#onResult(java.util.List<T>, int)).

Room can generate a Factory of PositionalDataSources for you:  

```
 @Dao
 interface UserDao {
     @Query("SELECT * FROM user ORDER BY mAge DESC")
     public abstract DataSource.Factory<Integer, User> loadUsersByAgeDesc();
 }
```

<br />

## Summary

|                                                                                                                                                                                                                                        ### Nested classes                                                                                                                                                                                                                                        ||
|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` class` | [PositionalDataSource.LoadInitialCallback](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback)`<T>` Callback for[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>))to return data, position, and count. |
| ` class` | [PositionalDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialParams) Holder object for inputs to[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>)).                              |
| ` class` | [PositionalDataSource.LoadRangeCallback](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadRangeCallback)`<T>` Callback for PositionalDataSource[loadRange(LoadRangeParams, LoadRangeCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadRange(android.arch.paging.PositionalDataSource.LoadRangeParams, android.arch.paging.PositionalDataSource.LoadRangeCallback<T>))to return data.                 |
| ` class` | [PositionalDataSource.LoadRangeParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadRangeParams) Holder object for inputs to[loadRange(LoadRangeParams, LoadRangeCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadRange(android.arch.paging.PositionalDataSource.LoadRangeParams, android.arch.paging.PositionalDataSource.LoadRangeCallback<T>)).                                              |

|                                                          ### Public constructors                                                           ||
|-----------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[PositionalDataSource](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#PositionalDataSource())`() ` |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                        ### Public methods                                                                                                                                                                                                                                                                                                                                                                                                                                                        ||
|----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` static int`                                                                                                              | ` `[computeInitialLoadPosition](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#computeInitialLoadPosition(android.arch.paging.PositionalDataSource.LoadInitialParams, int))`(`[PositionalDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialParams)` params, int totalCount) ` Helper for computing an initial position in[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>))when total data set size can be computed ahead of loading.                        |
| ` static int`                                                                                                              | ` `[computeInitialLoadSize](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#computeInitialLoadSize(android.arch.paging.PositionalDataSource.LoadInitialParams, int, int))`(`[PositionalDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialParams)` params, int initialLoadPosition, int totalCount) ` Helper for computing an initial load size in[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>))when total data set size can be computed ahead of loading. |
| ` abstract void`                                                                                                           | ` `[loadInitial](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>))`(`[PositionalDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialParams)` params, `[LoadInitialCallback](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback)`<T> callback) ` Load initial list data.                                                                                                                                                                                                                             |
| ` abstract void`                                                                                                           | ` `[loadRange](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadRange(android.arch.paging.PositionalDataSource.LoadRangeParams, android.arch.paging.PositionalDataSource.LoadRangeCallback<T>))`(`[PositionalDataSource.LoadRangeParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadRangeParams)` params, `[LoadRangeCallback](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadRangeCallback)`<T> callback) ` Called to load a range of data from the DataSource.                                                                                                                                                                                                                 |
| ` final <V> `[PositionalDataSource](https://developer.android.com/reference/android/arch/paging/PositionalDataSource)`<V>` | ` `[map](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#map(android.arch.core.util.Function<T, V>))`(`[Function](https://developer.android.com/reference/android/arch/core/util/Function)`<T, V> function) ` Applies the given function to each value emitted by the DataSource.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ` final <V> `[PositionalDataSource](https://developer.android.com/reference/android/arch/paging/PositionalDataSource)`<V>` | ` `[mapByPage](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#mapByPage(android.arch.core.util.Function<java.util.List<T>, java.util.List<V>>))`(`[Function](https://developer.android.com/reference/android/arch/core/util/Function)`<List<T>, List<V>> function) ` Applies the given function to each value emitted by the DataSource.                                                                                                                                                                                                                                                                                                                                                                                                                           |

| ### Inherited methods |
|-----------------------|---|
| From class` `[android.arch.paging.DataSource](https://developer.android.com/reference/android/arch/paging/DataSource)` ` |--------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` void`                                                                                                                        | ` `[addInvalidatedCallback](https://developer.android.com/reference/android/arch/paging/DataSource#addInvalidatedCallback(android.arch.paging.DataSource.InvalidatedCallback))`(`[DataSource.InvalidatedCallback](https://developer.android.com/reference/android/arch/paging/DataSource.InvalidatedCallback)` onInvalidatedCallback) ` Add a callback to invoke when the DataSource is first invalidated. | | ` void`                                                                                                                        | ` `[invalidate](https://developer.android.com/reference/android/arch/paging/DataSource#invalidate())`() ` Signal the data source to stop loading, and notify its callback.                                                                                                                                                                                                                                 | | ` boolean`                                                                                                                     | ` `[isInvalid](https://developer.android.com/reference/android/arch/paging/DataSource#isInvalid())`() ` Returns true if the data source is invalid, and can no longer be queried for data.                                                                                                                                                                                                                 | | ` abstract <ToValue> `[DataSource](https://developer.android.com/reference/android/arch/paging/DataSource)`<Integer, ToValue>` | ` `[map](https://developer.android.com/reference/android/arch/paging/DataSource#map(android.arch.core.util.Function<Value, ToValue>))`(`[Function](https://developer.android.com/reference/android/arch/core/util/Function)`<T, ToValue> function) ` Applies the given function to each value emitted by the DataSource.                                                                                   | | ` abstract <ToValue> `[DataSource](https://developer.android.com/reference/android/arch/paging/DataSource)`<Integer, ToValue>` | ` `[mapByPage](https://developer.android.com/reference/android/arch/paging/DataSource#mapByPage(android.arch.core.util.Function<java.util.List<Value>, java.util.List<ToValue>>))`(`[Function](https://developer.android.com/reference/android/arch/core/util/Function)`<List<T>, List<ToValue>> function) ` Applies the given function to each value emitted by the DataSource.                           | | ` void`                                                                                                                        | ` `[removeInvalidatedCallback](https://developer.android.com/reference/android/arch/paging/DataSource#removeInvalidatedCallback(android.arch.paging.DataSource.InvalidatedCallback))`(`[DataSource.InvalidatedCallback](https://developer.android.com/reference/android/arch/paging/DataSource.InvalidatedCallback)` onInvalidatedCallback) ` Remove a previously added invalidate callback.               | ||
| From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Public constructors

### PositionalDataSource

```
PositionalDataSource ()
```

<br />

<br />

## Public methods

### computeInitialLoadPosition

```
int computeInitialLoadPosition (PositionalDataSource.LoadInitialParams params, 
                int totalCount)
```

Helper for computing an initial position in[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>))when total data set size can be computed ahead of loading.

The value computed by this function will do bounds checking, page alignment, and positioning based on initial load size requested.

Example usage in a PositionalDataSource subclass:  

```
 class ItemDataSource extends PositionalDataSource<Item> {
     private int computeCount() {
         // actual count code here
     }

     private List<Item> loadRangeInternal(int startPosition, int loadCount) {
         // actual load code here
     }

     @Override
     public void loadInitial(@NonNull LoadInitialParams params,
             @NonNull LoadInitialCallback<Item> callback) {
         int totalCount = computeCount();
         int position = computeInitialLoadPosition(params, totalCount);
         int loadSize = computeInitialLoadSize(params, position, totalCount);
         callback.onResult(loadRangeInternal(position, loadSize), position, totalCount);
     }

     @Override
     public void loadRange(@NonNull LoadRangeParams params,
             @NonNull LoadRangeCallback<Item> callback) {
         callback.onResult(loadRangeInternal(params.startPosition, params.loadSize));
     }
 }
```

<br />

<br />

|                                                                                                                                                                                                     Parameters                                                                                                                                                                                                      ||
|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `params`     | `PositionalDataSource.LoadInitialParams`: Params passed to[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>)), including page size, and requested start/loadSize. <br /> |
| `totalCount` | `int`: Total size of the data set. <br />                                                                                                                                                                                                                                                                                                                                                             |

|                   Returns                   ||
|-------|--------------------------------------|
| `int` | Position to start loading at. <br /> |

**See also:**

- [computeInitialLoadSize(LoadInitialParams, int, int)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#computeInitialLoadSize(android.arch.paging.PositionalDataSource.LoadInitialParams, int, int))  

### computeInitialLoadSize

```
int computeInitialLoadSize (PositionalDataSource.LoadInitialParams params, 
                int initialLoadPosition, 
                int totalCount)
```

Helper for computing an initial load size in[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>))when total data set size can be computed ahead of loading.

This function takes the requested load size, and bounds checks it against the value returned by[computeInitialLoadPosition(LoadInitialParams, int)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#computeInitialLoadPosition(android.arch.paging.PositionalDataSource.LoadInitialParams, int)).

Example usage in a PositionalDataSource subclass:  

```
 class ItemDataSource extends PositionalDataSource<Item> {
     private int computeCount() {
         // actual count code here
     }

     private List<Item> loadRangeInternal(int startPosition, int loadCount) {
         // actual load code here
     }

     @Override
     public void loadInitial(@NonNull LoadInitialParams params,
             @NonNull LoadInitialCallback<Item> callback) {
         int totalCount = computeCount();
         int position = computeInitialLoadPosition(params, totalCount);
         int loadSize = computeInitialLoadSize(params, position, totalCount);
         callback.onResult(loadRangeInternal(position, loadSize), position, totalCount);
     }

     @Override
     public void loadRange(@NonNull LoadRangeParams params,
             @NonNull LoadRangeCallback<Item> callback) {
         callback.onResult(loadRangeInternal(params.startPosition, params.loadSize));
     }
 }
```

<br />

<br />

|                                                                                                                                                                                                          Parameters                                                                                                                                                                                                          ||
|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `params`              | `PositionalDataSource.LoadInitialParams`: Params passed to[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>)), including page size, and requested start/loadSize. <br /> |
| `initialLoadPosition` | `int`: Value returned by[computeInitialLoadPosition(LoadInitialParams, int)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#computeInitialLoadPosition(android.arch.paging.PositionalDataSource.LoadInitialParams, int)) <br />                                                                                                                                     |
| `totalCount`          | `int`: Total size of the data set. <br />                                                                                                                                                                                                                                                                                                                                                             |

|                Returns                 ||
|-------|---------------------------------|
| `int` | Number of items to load. <br /> |

**See also:**

- [computeInitialLoadPosition(LoadInitialParams, int)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#computeInitialLoadPosition(android.arch.paging.PositionalDataSource.LoadInitialParams, int))  

### loadInitial

```
void loadInitial (PositionalDataSource.LoadInitialParams params, 
                LoadInitialCallback<T> callback)
```

Load initial list data.

This method is called to load the initial page(s) from the DataSource.

Result list must be a multiple of pageSize to enable efficient tiling.

<br />

|                                                                       Parameters                                                                        ||
|------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| `params`   | `PositionalDataSource.LoadInitialParams`: Parameters for initial load, including requested start position, load size, and page size. <br /> |
| `callback` | `LoadInitialCallback`: Callback that receives initial load data, including position and total data set size. <br />                         |

### loadRange

```
void loadRange (PositionalDataSource.LoadRangeParams params, 
                LoadRangeCallback<T> callback)
```

Called to load a range of data from the DataSource.

This method is called to load additional pages from the DataSource after the LoadInitialCallback passed to dispatchLoadInitial has initialized a PagedList.

Unlike[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>)), this method must return the number of items requested, at the position requested.

<br />

|                                                       Parameters                                                        ||
|------------|-------------------------------------------------------------------------------------------------------------|
| `params`   | `PositionalDataSource.LoadRangeParams`: Parameters for load, including start position and load size. <br /> |
| `callback` | `LoadRangeCallback`: Callback that receives loaded data. <br />                                             |

### map

```
PositionalDataSource<V> map (Function<T, V> function)
```

Applies the given function to each value emitted by the DataSource.

Same as[mapByPage(Function)](https://developer.android.com/reference/android/arch/paging/DataSource#mapByPage(android.arch.core.util.Function<java.util.List<Value>, java.util.List<ToValue>>)), but operates on individual items.

<br />

|                                                    Parameters                                                     ||
|------------|-------------------------------------------------------------------------------------------------------|
| `function` | `Function`: Function that runs on each loaded item, returning items of a potentially new type. <br /> |

|                                                                                         Returns                                                                                          ||
|---------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------|
| [PositionalDataSource](https://developer.android.com/reference/android/arch/paging/PositionalDataSource)`<V>` | A new DataSource, which transforms items using the given function. <br /> |

### mapByPage

```
PositionalDataSource<V> mapByPage (Function<List<T>, List<V>> function)
```

Applies the given function to each value emitted by the DataSource.

Same as[map(Function)](https://developer.android.com/reference/android/arch/paging/DataSource#map(android.arch.core.util.Function<Value, ToValue>)), but allows for batch conversions.

<br />

|                                                    Parameters                                                     ||
|------------|-------------------------------------------------------------------------------------------------------|
| `function` | `Function`: Function that runs on each loaded page, returning items of a potentially new type. <br /> |

|                                                                                         Returns                                                                                          ||
|---------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------|
| [PositionalDataSource](https://developer.android.com/reference/android/arch/paging/PositionalDataSource)`<V>` | A new DataSource, which transforms items using the given function. <br /> |

-

  ## Interfaces

  - [DataSource.InvalidatedCallback](https://developer.android.com/reference/android/arch/paging/DataSource.InvalidatedCallback)
-

  ## Classes

  - [AsyncPagedListDiffer](https://developer.android.com/reference/android/arch/paging/AsyncPagedListDiffer)
  - [DataSource](https://developer.android.com/reference/android/arch/paging/DataSource)
  - [DataSource.Factory](https://developer.android.com/reference/android/arch/paging/DataSource.Factory)
  - [ItemKeyedDataSource](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource)
  - [ItemKeyedDataSource.LoadCallback](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource.LoadCallback)
  - [ItemKeyedDataSource.LoadInitialCallback](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource.LoadInitialCallback)
  - [ItemKeyedDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource.LoadInitialParams)
  - [ItemKeyedDataSource.LoadParams](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource.LoadParams)
  - [LivePagedListBuilder](https://developer.android.com/reference/android/arch/paging/LivePagedListBuilder)
  - [PagedList](https://developer.android.com/reference/android/arch/paging/PagedList)
  - [PagedList.BoundaryCallback](https://developer.android.com/reference/android/arch/paging/PagedList.BoundaryCallback)
  - [PagedList.Builder](https://developer.android.com/reference/android/arch/paging/PagedList.Builder)
  - [PagedList.Callback](https://developer.android.com/reference/android/arch/paging/PagedList.Callback)
  - [PagedList.Config](https://developer.android.com/reference/android/arch/paging/PagedList.Config)
  - [PagedList.Config.Builder](https://developer.android.com/reference/android/arch/paging/PagedList.Config.Builder)
  - [PagedListAdapter](https://developer.android.com/reference/android/arch/paging/PagedListAdapter)
  - [PageKeyedDataSource](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource)
  - [PageKeyedDataSource.LoadCallback](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource.LoadCallback)
  - [PageKeyedDataSource.LoadInitialCallback](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource.LoadInitialCallback)
  - [PageKeyedDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource.LoadInitialParams)
  - [PageKeyedDataSource.LoadParams](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource.LoadParams)
  - [PositionalDataSource](https://developer.android.com/reference/android/arch/paging/PositionalDataSource)
  - [PositionalDataSource.LoadInitialCallback](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback)
  - [PositionalDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialParams)
  - [PositionalDataSource.LoadRangeCallback](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadRangeCallback)
  - [PositionalDataSource.LoadRangeParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadRangeParams)
  - [RxPagedListBuilder](https://developer.android.com/reference/android/arch/paging/RxPagedListBuilder)