T
- data provider data typeF
- wrapper query filter typeM
- underlying data provider filter typepublic abstract class DataProviderWrapper<T,F,M> extends Object implements DataProvider<T,F>
Query
for the underlying data
provider with correct filters and sorting.Modifier and Type | Field and Description |
---|---|
protected DataProvider<T,M> |
dataProvider
The actual data provider behind this wrapper.
|
Modifier | Constructor and Description |
---|---|
protected |
DataProviderWrapper(DataProvider<T,M> dataProvider)
Constructs a filtering wrapper for a data provider.
|
Modifier and Type | Method and Description |
---|---|
Registration |
addDataProviderListener(DataProviderListener<T> listener)
Adds a data provider listener.
|
Stream<T> |
fetch(Query<T,F> t)
Fetches data from this DataProvider using given
query . |
protected abstract M |
getFilter(Query<T,F> query)
Gets the filter that should be used in the modified Query.
|
Object |
getId(T item)
Gets an identifier for the given item.
|
boolean |
isInMemory()
Gets whether the DataProvider content all available in memory or does it
use some external backend.
|
void |
refreshAll()
Refreshes all data based on currently available data in the underlying
provider.
|
void |
refreshItem(T item)
Refreshes the given item.
|
int |
size(Query<T,F> t)
Gets the amount of data in this DataProvider.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
fromCallbacks, fromFilteringCallbacks, fromStream, ofCollection, ofItems, withConfigurableFilter, withConfigurableFilter, withConvertedFilter
protected DataProvider<T,M> dataProvider
protected DataProviderWrapper(DataProvider<T,M> dataProvider)
dataProvider
- the wrapped data provider, not null
public boolean isInMemory()
DataProvider
isInMemory
in interface DataProvider<T,F>
true
if all data is in memory; false
if notpublic void refreshAll()
DataProvider
refreshAll
in interface DataProvider<T,F>
public void refreshItem(T item)
DataProvider
DataProviderListeners
that an item has been
updated or replaced with a new instance.
For this to work properly, the item must either implement
Object.equals(Object)
and Object.hashCode()
to consider
both the old and the new item instances to be equal, or alternatively
DataProvider.getId(Object)
should be implemented to return an appropriate
identifier.
refreshItem
in interface DataProvider<T,F>
item
- the item to refreshDataProvider.getId(Object)
public Object getId(T item)
DataProvider
Default is to use item itself as its own identifier. If the item has
Object.equals(Object)
and Object.hashCode()
implemented
in a way that it can be compared to other items, no changes are required.
Note: This method will be called often by the Framework. It should not do any expensive operations.
getId
in interface DataProvider<T,F>
item
- the item to get identifier for; not null
null
public Registration addDataProviderListener(DataProviderListener<T> listener)
DataProvider
The DataProvider.refreshAll()
method fires DataChangeEvent
each time
when it's called. It allows to update UI components when user changes
something in the underlying data.
addDataProviderListener
in interface DataProvider<T,F>
listener
- the data change listener, not nullDataProvider.refreshAll()
public int size(Query<T,F> t)
DataProvider
size
in interface DataProvider<T,F>
t
- query with sorting and filteringpublic Stream<T> fetch(Query<T,F> t)
DataProvider
query
.fetch
in interface DataProvider<T,F>
t
- given query to request datanull
Copyright © 2018. All rights reserved.