Module org.apache.wicket.core
Interface IDataProvider<T>
- Type Parameters:
T
-
- All Superinterfaces:
IClusterable
,IDetachable
,Serializable
- All Known Subinterfaces:
ISortableDataProvider<T,
,S> ITreeDataProvider<T>
- All Known Implementing Classes:
EmptyDataProvider
,ListDataProvider
,SortableDataProvider
,TreeDataProvider
Interface used to provide data to data views.
Example:
class UsersProvider implements IDataProvider { public Iterator iterator(long first, long count) { ((MyApplication)Application.get()).getUserDao().iterator(first, count); } public long size() { ((MyApplication)Application.get()).getUserDao().getCount(); } public IModel model(Object object) { return new DetachableUserModel((User)object); } }You can use the
IDetachable.detach()
method for cleaning up your IDataProvider instance.
So that you can do one query that returns both the size and the values if your dataset is small
enough the be able to do that.- Author:
- Igor Vaynberg (ivaynberg)
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
detach()
Detaches model after use.iterator
(long first, long count) Gets an iterator for the subset of total dataCallback used by the consumer of this data provider to wrap objects retrieved fromiterator(long, long)
with a model (usually a detachable one).long
size()
Gets total number of items in the collection represented by the DataProvider
-
Method Details
-
iterator
Gets an iterator for the subset of total data- Parameters:
first
- first row of datacount
- minimum number of elements to retrieve- Returns:
- iterator capable of iterating over {first, first+count} items
-
size
long size()Gets total number of items in the collection represented by the DataProvider- Returns:
- total item count
-
model
Callback used by the consumer of this data provider to wrap objects retrieved fromiterator(long, long)
with a model (usually a detachable one).- Parameters:
object
- the object that needs to be wrapped- Returns:
- the model representation of the object
-
detach
Description copied from interface:IDetachable
Detaches model after use. This is generally used to null out transient references that can be re-attached later.- Specified by:
detach
in interfaceIDetachable
-