@ExperimentalApi
public interface PaginationService
Modifier and Type | Method and Description |
---|---|
<H,M> PageResponse<M> |
doPaginationRequest(LimitedRequest pageRequest,
PaginationBatch<H> fetchBatch,
com.google.common.base.Function<? super H,M> modelConverter)
Perform a pagination request, this will execute the fetchBatch function as many times as
necessary to retrieve the page of results.
|
<H,M> PageResponse<M> doPaginationRequest(LimitedRequest pageRequest, PaginationBatch<H> fetchBatch, com.google.common.base.Function<? super H,M> modelConverter)
com.atlassian.confluence.api.model.pagination.LimitedRequest.getMaxLimit()
results
from the datasource. FetchBatch will be executed in a new transaction for each batch to prevent excessive memory usage.
It is expected that any permission checking is performed in the PaginationBatch.
The PaginationService is responsible for ensuring that enough results are returned from the PaginationBatch to fulfill the request. The PaginationBatch should not treat the pageRequest getStart and getLimit values as user specific indexes, only results the user can see should be returned. If a user does not have permission to see any results in the requested range an empty list should be returned in the response and the hasMore flag set if there are more results still to check. The pagination service will call again if more results are required.
pageRequest
- - a request for a range of datafetchBatch
- - the function to supply the resultsmodelConverter
- - a function to convert from the supplied object to a model object, this will be executed within a transaction.Copyright © 2003–2016 Atlassian. All rights reserved.