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
#equals(Object)
and #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 Vaadin Ltd. All rights reserved.