Top Description Fields Constructors Methods
com.oracle.bmc.paginator.internal

public abstract Class AbstractResponseIterator<REQUESTBUILDER, REQUEST, RESPONSE>

extends Object
Class Inheritance
Known Direct Subclasses
com.oracle.bmc.paginator.internal.ResponseIterator, com.oracle.bmc.paginator.internal.ResponseRecordIterator
Type Parameters
<REQUESTBUILDER>
the type of a builder which can produce requests for a list operation
<REQUEST>
the type of a request to a list operation. This type must match the type produced by REQUESTBUILDER
<RESPONSE>
the type of the response from a list operation
Imports
java.util.Optional, java.util.function.Function

Contains common functionality for classes which will iterate over the results of paginated list operations in a service.

Field Summary

Modifier and TypeField and Description
protected RESPONSE
currentResponse

The most recent response/result of calling the list operation.

protected String
nextPageToken

The page token to use on the next request to the list operation

protected final Function<RESPONSE, String>
nextPageTokenRetrievalFunction

A function which can be used to extract the next page token from a response from a list operation

protected final Function<REQUEST, RESPONSE>
pageRetrievalFunction

A function which can call a list operation with a request and return the response from that call

protected final REQUESTBUILDER
requestBuilder

A builder which can be used to construct requests to the list operation

protected final Function<RequestBuilderAndToken<REQUESTBUILDER>, REQUEST>
requestBuilderFunction

A function which constructs a request to a list operation based on a builder object and pagination token

Constructor Summary

AccessConstructor and Description
public
AbstractResponseIterator(final REQUESTBUILDER
a builder object which can create requests for a list operation
requestBuilder
,
final Function<RESPONSE, String>
a function which can extract the next page token from a response produced by a list operation
nextPageTokenRetrievalFunction
,
final Function<RequestBuilderAndToken<REQUESTBUILDER>, REQUEST>
a function which can build a request for a list operation based on a builder object and a pagination token to use
requestBuilderFunction
,
final Function<REQUEST, RESPONSE>
a function which will call a list operation with a request and return the response of the call
pageRetrievalFunction
)

Constructs a new AbstractResponseIterator.

Method Summary

Modifier and TypeMethod and Description
protected void
fetchNextPage()

Updates the state of this class with the next page of results

protected Optional<String>

Returns:

null if we have not previously made a request to fetch any results. Otherwise, an Optional containing the next page token to use. If there is no next page token to use then an empty/absent Optional will be returned
getNextPageToken
()

Gets the page token that should be used when the list operation is next called.

protected REQUEST

Returns:

the next request that should be used when calling the list operation
getNextRequest
()

Based on the state of this class, produces the next request that should be used when calling the list operation so that the next page of results will be returned.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

currentResponseback to summary
protected RESPONSE currentResponse

The most recent response/result of calling the list operation. If the operation has never been called, then this will be null

nextPageTokenback to summary
protected String nextPageToken

The page token to use on the next request to the list operation

nextPageTokenRetrievalFunctionback to summary
protected final Function<RESPONSE, String> nextPageTokenRetrievalFunction

A function which can be used to extract the next page token from a response from a list operation

pageRetrievalFunctionback to summary
protected final Function<REQUEST, RESPONSE> pageRetrievalFunction

A function which can call a list operation with a request and return the response from that call

requestBuilderback to summary
protected final REQUESTBUILDER requestBuilder

A builder which can be used to construct requests to the list operation

requestBuilderFunctionback to summary
protected final Function<RequestBuilderAndToken<REQUESTBUILDER>, REQUEST> requestBuilderFunction

A function which constructs a request to a list operation based on a builder object and pagination token

Constructor Detail

AbstractResponseIteratorback to summary
public AbstractResponseIterator(final REQUESTBUILDER requestBuilder, final Function<RESPONSE, String> nextPageTokenRetrievalFunction, final Function<RequestBuilderAndToken<REQUESTBUILDER>, REQUEST> requestBuilderFunction, final Function<REQUEST, RESPONSE> pageRetrievalFunction)

Constructs a new AbstractResponseIterator.

Parameters
requestBuilder:REQUESTBUILDER

a builder object which can create requests for a list operation

nextPageTokenRetrievalFunction:Function<RESPONSE, String>

a function which can extract the next page token from a response produced by a list operation

requestBuilderFunction:Function<RequestBuilderAndToken<REQUESTBUILDER>, REQUEST>

a function which can build a request for a list operation based on a builder object and a pagination token to use

pageRetrievalFunction:Function<REQUEST, RESPONSE>

a function which will call a list operation with a request and return the response of the call

Method Detail

fetchNextPageback to summary
protected void fetchNextPage()

Updates the state of this class with the next page of results

getNextPageTokenback to summary
protected Optional<String> getNextPageToken()

Gets the page token that should be used when the list operation is next called.

Returns:Optional<String>

null if we have not previously made a request to fetch any results. Otherwise, an Optional containing the next page token to use. If there is no next page token to use then an empty/absent Optional will be returned

getNextRequestback to summary
protected REQUEST getNextRequest()

Based on the state of this class, produces the next request that should be used when calling the list operation so that the next page of results will be returned. This will just create the request and not make any service calls

Returns:REQUEST

the next request that should be used when calling the list operation