Class PageIterator<T extends com.abiquo.model.transport.WrapperDto<? extends com.abiquo.model.transport.SingleResourceTransportDto>>

  • All Implemented Interfaces:
    Iterator<T>

    public class PageIterator<T extends com.abiquo.model.transport.WrapperDto<? extends com.abiquo.model.transport.SingleResourceTransportDto>>
    extends com.google.common.collect.AbstractIterator<T>
    An Iterator that is capable of advancing between the pages of a paginated collection.

    To create this iterator use the #flatten(ApiClient, WrapperDto) method.

    Author:
    Ignasi Barrera
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  PageIterator.AdvancingIterable<T extends com.abiquo.model.transport.SingleResourceTransportDto,​W extends com.abiquo.model.transport.WrapperDto<T>>
      An Iterable that is capable of advancing between pages.
    • Method Detail

      • computeNext

        protected T computeNext()
        Specified by:
        computeNext in class com.google.common.collect.AbstractIterator<T extends com.abiquo.model.transport.WrapperDto<? extends com.abiquo.model.transport.SingleResourceTransportDto>>
      • flatten

        public static <T extends com.abiquo.model.transport.SingleResourceTransportDto,​W extends com.abiquo.model.transport.WrapperDto<T>> Stream<T> flatten​(RestClient api,
                                                                                                                                                                   W dto)
        Creates an Stream capable of advancing over the elements of a paginated collection, and lazily fetch new pages as they are needed.
        Parameters:
        api - The rest client used to fetch new pages when needed.
        dto - The collection to iterate.
        Returns:
        An iterator capable of advancing between pages.