DataSource.Factory
public
static
abstract
class
DataSource.Factory
extends Object
java.lang.Object | |
↳ | android.arch.paging.DataSource.Factory<Key, Value> |
Factory for DataSources.
Data-loading systems of an application or library can implement this interface to allow
LiveData<PagedList>
s to be created. For example, Room can provide a
DataSource.Factory for a given SQL query:
@Dao interface UserDao { @Query("SELECT * FROM user ORDER BY lastName ASC") public abstract DataSource.Factory<Integer, User> usersByLastName(); }In the above sample,
Integer
is used because it is the Key
type of
PositionalDataSource. Currently, Room uses the LIMIT
/OFFSET
SQL keywords to
page a large query with a PositionalDataSource.
Summary
Public constructors | |
---|---|
DataSource.Factory()
|
Public methods | |
---|---|
abstract
DataSource<Key, Value>
|
create()
Create a DataSource. |
<ToValue>
Factory<Key, ToValue>
|
map(Function<Value, ToValue> function)
Applies the given function to each value emitted by DataSources produced by this Factory. |
<ToValue>
Factory<Key, ToValue>
|
mapByPage(Function<List<Value>, List<ToValue>> function)
Applies the given function to each value emitted by DataSources produced by this Factory. |
Inherited methods | |
---|---|
Public constructors
DataSource.Factory
DataSource.Factory ()
Public methods
create
DataSource<Key, Value> create ()
Create a DataSource.
The DataSource should invalidate itself if the snapshot is no longer valid. If a DataSource becomes invalid, the only way to query more data is to create a new DataSource from the Factory.
LivePagedListBuilder
for example will construct a new PagedList and DataSource
when the current DataSource is invalidated, and pass the new PagedList through the
LiveData<PagedList>
to observers.
Returns | |
---|---|
DataSource<Key, Value> |
the new DataSource. |
map
Factory<Key, ToValue> map (Function<Value, ToValue> function)
Applies the given function to each value emitted by DataSources produced by this Factory.
Same as mapByPage(Function)
, but operates on individual items.
Parameters | |
---|---|
function |
Function : Function that runs on each loaded item, returning items of a potentially
new type. |
Returns | |
---|---|
Factory<Key, ToValue> |
A new DataSource.Factory, which transforms items using the given function. |
mapByPage
Factory<Key, ToValue> mapByPage (Function<List<Value>, List<ToValue>> function)
Applies the given function to each value emitted by DataSources produced by this Factory.
Same as map(Function)
, but allows for batch conversions.
Parameters | |
---|---|
function |
Function : Function that runs on each loaded page, returning items of a potentially
new type. |
Returns | |
---|---|
Factory<Key, ToValue> |
A new DataSource.Factory, which transforms items using the given function. |
Interfaces
Classes
- AsyncPagedListDiffer
- DataSource
- DataSource.Factory
- ItemKeyedDataSource
- ItemKeyedDataSource.LoadCallback
- ItemKeyedDataSource.LoadInitialCallback
- ItemKeyedDataSource.LoadInitialParams
- ItemKeyedDataSource.LoadParams
- LivePagedListBuilder
- PagedList
- PagedList.BoundaryCallback
- PagedList.Builder
- PagedList.Callback
- PagedList.Config
- PagedList.Config.Builder
- PagedListAdapter
- PageKeyedDataSource
- PageKeyedDataSource.LoadCallback
- PageKeyedDataSource.LoadInitialCallback
- PageKeyedDataSource.LoadInitialParams
- PageKeyedDataSource.LoadParams
- PositionalDataSource
- PositionalDataSource.LoadInitialCallback
- PositionalDataSource.LoadInitialParams
- PositionalDataSource.LoadRangeCallback
- PositionalDataSource.LoadRangeParams
- RxPagedListBuilder