Class PageTracker<ProgressParamT extends java.lang.Number>
- java.lang.Object
-
- com.stackone.stackone_client_java.utils.pagination.PageTracker<ProgressParamT>
-
- Type Parameters:
ProgressParamT- The numeric type to use for page numbers (e.g., Integer, Long)
- All Implemented Interfaces:
ProgressTrackerStrategy<ProgressParamT>
public class PageTracker<ProgressParamT extends java.lang.Number> extends java.lang.Object implements ProgressTrackerStrategy<ProgressParamT>
Handles pagination using total page count from responses. This tracker is suitable for APIs that return the total number of pages in each response and use that to determine when to stop pagination.
-
-
Constructor Summary
Constructors Constructor Description PageTracker(java.lang.String numPagesExpression, java.lang.Class<ProgressParamT> pageType, long fromPage)Creates a new PageTracker with a specified starting page.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadvance(com.jayway.jsonpath.ReadContext respJson)Process the response and update pagination state.ProgressParamTgetPosition()Get the current progression value to use in the next request.
-
-
-
Constructor Detail
-
PageTracker
public PageTracker(java.lang.String numPagesExpression, java.lang.Class<ProgressParamT> pageType, long fromPage)Creates a new PageTracker with a specified starting page.- Parameters:
numPagesExpression- The JsonPath expression to extract total pagespageType- The class of the numeric type to use (e.g., Integer.class, Long.class)fromPage- Page number to start pagination from (0-based or 1-based, depending on API)
-
-
Method Detail
-
advance
public boolean advance(com.jayway.jsonpath.ReadContext respJson)
Description copied from interface:ProgressTrackerStrategyProcess the response and update pagination state. This method should: 1. Extract pagination metadata from the response 2. Update internal state based on the metadata 3. Return true if there are more pages to fetch, false otherwise- Specified by:
advancein interfaceProgressTrackerStrategy<ProgressParamT extends java.lang.Number>- Parameters:
respJson- The JSON response to process- Returns:
- true if there are more pages to fetch, false otherwise
-
getPosition
public ProgressParamT getPosition()
Description copied from interface:ProgressTrackerStrategyGet the current progression value to use in the next request. This value will be used to modify the request for the next page.- Specified by:
getPositionin interfaceProgressTrackerStrategy<ProgressParamT extends java.lang.Number>- Returns:
- The current progression value
-
-