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();
 }
 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
 
