package com.asana.iterator;
import com.asana.models.ResultBodyCollection;
import com.asana.requests.CollectionRequest;
import java.io.IOException;
/**
* Loads a "page" of items from a collection, automatically updating the "offset" based on the "next_page" token on
* each request.
*/
public class CollectionPageIterator<T> extends PageIterator<T> {
public CollectionPageIterator(CollectionRequest<T> request) {
super(request);
}
@Override
protected ResultBodyCollection<T> getNext() throws IOException {
this.request.query("offset", this.continuation);
return this.request.executeRaw();
}
@Override
protected Object getContinuation(ResultBodyCollection<T> result) {
return result.nextPage != null ? result.nextPage.offset : null;
}
}