public interface Pageable<T>
Pageable
instance is a cached view on a remote collection of elements of the specified type T
.
limit
and offset
to
respectively control the maximum number of elements to fetch from the remote collection and the absolute offset of
the first element to fetch. The elements loaded in the cache are accessed using elements()
.
Pageable
instance is also used to navigate in the remote collection and access its elements. The
navigation supports random access to any position in the remote collection and is performed by calling one of the
following methods: next()
, first()
, last()
, at(int offset)
.
Navigation implies accessing the remote collection and may fail with an I/O error.
elements()
next()
, at(int)
and last()
Pageable<String> p;
// iterate on all elements of the remote collection
while (p.hasMore()) {
// get next available page, using already initialized offset and limit
p = p.next();
// get the elements of the first page
Collection<String> names = p.elements();
...
}
// get 10 elements, starting at offset 300 in the remote collection.
Collection<String> names = p.limit(10).at(300).elements();
Modifier and Type | Method and Description |
---|---|
Pageable<T> |
at(int offset)
Navigate to the specified offset in the remote collection and return the corresponding page
|
java.util.Collection<T> |
elements()
Returns the subset of elements that have been loaded from the remote collection.
|
Pageable<T> |
first()
Navigate to the first page and return a view on it.
|
boolean |
hasMore()
Returns whether or not more elements are available in the remote collection, accessible using
next() . |
Pageable<T> |
last()
Navigate to the last page and return a view on it.
|
int |
limit()
Get the maximum number of elements that will be fetched from the remote collection during next refill.
|
Pageable<T> |
limit(int limit)
Set the number of elements that will be retrieved from the remote collection during next refill.
|
Pageable<T> |
next()
Navigate in the remote collection to get the next page, starting at the specified offset increased by the number
of elements of the current page, and return a view on it.
|
int |
offset()
Get the absolute offset in the remote collection of the first element.
|
int |
size()
Get the total number of elements in the collection
|
int size()
boolean hasMore()
next()
.true
if more elements are available.int offset()
int limit()
Pageable<T> limit(int limit)
limit
- the maximum number of elements of a pagePageable
instance configured with the new limit (could be the same object).java.util.Collection<T> elements()
Pageable<T> next() throws java.io.IOException, java.util.NoSuchElementException
java.io.IOException
- if an I/O error occurred while trying to access remote collectionjava.util.NoSuchElementException
- if the collection has no more elementhasMore()
Pageable<T> first() throws java.io.IOException
java.io.IOException
- if an I/O error occurred while trying to access remote collectionPageable<T> last() throws java.io.IOException
java.io.IOException
- if an I/O error occurred while trying to access remote collectionPageable<T> at(int offset) throws java.io.IOException, java.lang.IndexOutOfBoundsException
offset
- the absolute offset of the first element to fetchjava.io.IOException
- if an I/O error occurred while trying to access remote collectionjava.lang.IndexOutOfBoundsException
- if the offset is out of range (offset < 0 || offset >= size())