public abstract class PagedDatabaseIterable<E,K> extends Object implements EnclosedIterable<E>
EnclosedIterable that takes a list of ids and
then pages them by opening an OfBizListIterator for each page.
This implementation supports preserving the order of the elements in the returned list but will load all the elements into memory in order to do so.
This implementation uses the DatabaseIterator but implements paging and sorting on top of it.
EnclosedIterable.Functions, EnclosedIterable.ListResolver<T>| Constructor and Description |
|---|
PagedDatabaseIterable(List<K> ids)
Use where the order of the result is not important.
|
PagedDatabaseIterable(List<K> ids,
Resolver<E,K> keyResolver)
Use where the order of the result is important.
|
PagedDatabaseIterable(List<K> ids,
Resolver<E,K> keyResolver,
int pageSize)
Use where the order of the result is important.
|
| Modifier and Type | Method and Description |
|---|---|
protected abstract OfBizListIterator |
createListIterator(List<K> ids)
Create a new iterator from the subset of ids.
|
void |
foreach(Consumer<E> consumer)
Apply the sink to all elements in the Collection.
|
protected abstract Resolver<org.ofbiz.core.entity.GenericValue,E> |
getResolver()
Used to turn generic values into Domain objects
|
boolean |
isEmpty() |
int |
size() |
public PagedDatabaseIterable(List<K> ids)
ids - a Listpublic PagedDatabaseIterable(List<K> ids, Resolver<E,K> keyResolver)
ids - a ListkeyResolver - to get a domain object's key (ie. the element in the ids list). Null if sort order is
unimportantpublic PagedDatabaseIterable(List<K> ids, Resolver<E,K> keyResolver, int pageSize)
ids - a ListkeyResolver - to get a domain object's key (ie. the element in the ids list). Null if sort order is
unimportantpageSize - the size of the pages to usepublic final void foreach(Consumer<E> consumer)
EnclosedIterableforeach in interface EnclosedIterable<E>protected abstract OfBizListIterator createListIterator(List<K> ids)
ids - list of idsprotected abstract Resolver<org.ofbiz.core.entity.GenericValue,E> getResolver()
public final int size()
size in interface EnclosedIterable<E>size in interface SizedEnclosedIterable.foreach(Consumer). Be careful depending on this size
being exact, as in many cases its best efforts value or may be unstable due to concurrent changes.public boolean isEmpty()
isEmpty in interface EnclosedIterable<E>isEmpty in interface SizedCopyright © 2002-2017 Atlassian. All Rights Reserved.